OSDN Git Service

473e6c88cf2ad21d4032c1635ef3f9bfea6c9632
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
2
3         * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
4         s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
5         s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
6         i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
7         s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
8         comments.
9
10 2008-03-26  Thomas Quinot  <quinot@adacore.com>
11
12 PR ada/33688
13
14         * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
15         Get_Socket_Option): Add support for Receive_Packet_Info.
16
17         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
18         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
19         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
20         g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
21         g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
22         new constants SO_REUSEPORT and IP_PKTINFO
23
24 2008-03-26  Robert Dewar  <dewar@adacore.com>
25
26         * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
27         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
28         a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
29         a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
30         a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
31         a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
32         s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
33         s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
34         a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
35         s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
36         s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
37         s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
38         s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
39         s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
40         s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
41         s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
42         s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
43         s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
44         s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
45         s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
46         a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
47         a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
48         s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
49         s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
50         s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
51         s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
52         s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
53         a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
54         a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
55         s-tasloc.adb: Minor reformatting.
56         Update comments.
57         Remove "used for" sections from comments.
58
59 2008-03-26  Robert Dewar  <dewar@adacore.com>
60
61         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
62         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
63         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
64         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
65         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
66         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
67         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
68         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
69         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
70         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
71         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
72         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
73         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
74         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
75         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
76         double spaced if it fits on one line and otherwise single spaced.
77
78 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
79
80         * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb, 
81         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb, 
82         s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
83         or task info if the thread could not be created.
84
85 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
86
87         * gnatvsn.ads (Library_Version): Bump to 4.4.
88         (Current_Year): Bump to 2008.
89
90 2008-03-26  Robert Dewar  <dewar@adacore.com>
91
92         * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
93
94         * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
95
96         * debug.adb: Add debug flags d.r and d.v
97         Add debug flag .T (Optimize_Alignment (Time))
98         Add debug flag .S (Optimize_Alignment (Space))
99
100         * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
101         depending on setting of relevant debug flags.
102         Replace use of Warnings_Off by Has_Warnings_Off
103         (Freeze_Entity): In circuit for warning on suspicious convention
104         actuals, do not give warning if subprogram has same entity as formal
105         type, or if subprogram does not come from source.
106         (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
107         if Optimize_Alignment set to Space.
108
109         * frontend.adb: Add call to Sem_Warn.Initialize
110         Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
111         Reset Optimize_Alignment mode from debug switches .S and .T
112
113         * layout.adb (Layout_Composite_Object): Rewritten for
114         Optimize_Aligment pragma.
115
116         * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
117         mode.
118
119         * opt.ads, opt.adb: (Optimize_Alignment): New global switch
120
121         * par-prag.adb (N_Pragma): Chars field removed, use Chars
122         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
123         this change. Add entry for pragma Optimize_Alignment
124
125         * sem_prag.adb (N_Pragma): Chars field removed, use Chars
126         (Pragma_Identifier (..
127         instead, adjustments throughout to accomodate this change.
128         (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
129         (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
130         Add implementation of pragma Optimize_Alignment
131
132 2008-03-26  Vincent Celier  <celier@adacore.com>
133
134         * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
135         Improve memory usage to avoid use of stack.
136
137 2008-03-26  Robert Dewar  <dewar@adacore.com>
138
139         * a-teioed.ads: Correct value of Default_Fill
140
141         * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
142
143 2008-03-26  Robert Dewar  <dewar@adacore.com>
144
145         * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
146         with Current_Output (introduce Self).
147
148 2008-03-26  Robert Dewar  <dewar@adacore.com>
149
150         * checks.adb (Ensure_Valid): Capture valid status if possible
151         (eliminate checks)
152
153 2008-03-26  Robert Dewar  <dewar@adacore.com>
154
155         * stand.ads: Deal with reordering of package standard declarations
156
157         * cstand.adb: Put package Standard declarations in proper order
158
159 2008-03-26  Robert Dewar  <dewar@adacore.com>
160
161         * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
162         (Pragma_Identifier (.. instead.
163         (OK_To_Reorder_Components): New flag
164         (Has_Entries): Code cleanup.
165         (Warnings_Off_Used): New flag
166         (Warnings_Off_Used_Unmodified): New flag
167         (Warnings_Off_Used_Unreferenced): New flag
168         (Has_Warnings_Off): New function
169         (Has_Unmodified): New function
170         (Has_Unreferenced): New function
171         (Is_Trivial_Subprogram): New flag
172         (Is_Static_Dispatch_Table_Entity): New attribute.
173         Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
174         (more consistent with other similar names)
175         (Access_Subprogram_Type): New classification function
176
177 2008-03-26  Robert Dewar  <dewar@adacore.com>
178
179         * errout.ads: Document new !! insertion sequence
180
181         * errout.adb (N_Pragma): Chars field removed, use Chars
182         (Pragma_Identifier (..  instead.
183         Replace use of Warnings_Off by Has_Warnings_Off
184         (Error_Msg_Internal): Don't delete warning ending in !!
185
186 2008-03-26  Robert Dewar  <dewar@adacore.com>
187
188         * par.adb (Check_No_Right_Paren): Removed no longer used
189
190         * par-ch10.adb (N_Pragma): Chars field removed, use Chars
191         (Pragma_Identifier (..  instead.
192
193         * par-ch10.adb (P_Subunit): Improvement in error recovery and message
194
195         * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
196         par-ch4.adb: Minor improvements in error recovery and messages.
197
198         * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
199         non-serious
200
201         * par-ch9.adb: Minor improvements in error recovery and messages
202         (P_Protected): Better error recovery for "protected type x;"
203
204         * par-util.adb: Minor improvements in error recovery and messages
205         (Check_No_Right_Paren): Removed no longer used
206
207 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
208
209         * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
210         that the prefix of an attribute is the type of the aggregate being
211         expanded.
212
213 2008-03-26  Javier Miranda  <miranda@adacore.com>
214             Robert Dewar  <dewar@adacore.com>
215
216         * exp_attr.adb (N_Pragma): Chars field removed.
217         (Expand_N_Attribute_Reference): If the designated type associated with
218         attribute 'Unrestricted_Access is a subprogram entity then replace it
219         by an E_Subprogram_Type itype.
220         Implement attribute Old
221
222         * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
223
224         * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
225         Replace call to
226         New_Internal_Entity by call to Create_Itype to centralize calls
227         building itypes, ad propagate the convention of the designated
228         subprogram. In addition, disable the machinery cleaning constant
229         indications from all entities in current scope when 'Unrestricted_Access
230         corresponds with a node initializing a dispatch table slot.
231         (Analyze_Attribute): Parameterless attributes returning a string or a
232         type will not be called with improper arguments, so we can remove junk
233         code that was dealing with this case.
234         Implement attribute Old
235
236         * snames.ads, snames.h, snames.adb: Add entries for attribute Old
237         Add entry for pragma Optimize_Alignment
238         New standard names Sync and Synchronize
239
240 2008-03-26  Robert Dewar  <dewar@adacore.com>
241             Arnaud Charlet  <charlet@adacore.com>
242
243         * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
244         stmt.
245         (No_Exception_Propagation_Active): New function.
246         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
247         Update comments, and review all uses of No_Exception_Propagation, which
248         are now correct and in sync with what gigi expects.
249
250         * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
251         function.
252         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
253         Update comments, and review all uses of No_Exception_Propagation, which
254         are now correct and in sync with what gigi expects.
255
256 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
257
258         * sem_ch3.adb (Access_Definition): If the access type is the return
259         result of a protected function, create an itype reference for it
260         because usage will be in an inner scope from the point of declaration.
261         (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
262         OK_To_Reorder_Components.
263         (Make_Index): If an overloaded range includes a universal integer
264         interpretation, resolve to Standard.Integer.
265         (Analyze_Subtype_Indication): Copy Convention to subtype
266         (Check_Abstract_Interfaces): Complete semantic checks on the legality of
267         limited an synchronized progenitors in type declaration and private
268         extension declarations.
269
270         * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
271         protected subprogram body, determine proper scope from subprogram
272         declaration.
273
274 2008-03-26  Robert Dewar  <dewar@adacore.com>
275
276         * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
277         No_Run_Time_Mode
278
279 2008-03-26  Gary Dismukes  <dismukes@adacore.com>
280
281         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
282         of a heap allocator for a limited unconstrained function return when
283         resstriction No_Allocators is active.
284         (Analyze_Allocator): The restriction No_Allocators is now only checked
285         on allocators that have Comes_From_Source set, as per RM-H.4(7).
286
287         * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
288         of a heap allocator for a limited unconstrained function return when
289         resstriction No_Allocators is active.
290         (Analyze_Allocator): The restriction No_Allocators is now only checked
291         on allocators that have Comes_From_Source set, as per RM-H.4(7).
292         (Has_Fixed_Op):  If the name in a function call is Standard."*" and the
293         operands are fixed-point types, the universal_fixed predefined operation
294         is used, regardless of whether the operand type (s) have a primitive
295         operation of the same name.
296
297 2008-03-26  Javier Miranda  <miranda@adacore.com>
298
299         * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
300         Is_Static_Dispatch_Table
301         (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
302         to Exchange_Declarations to exchange the private and full-view. Bug
303         found working in this issue.
304         (Expand_Dispatching_Call): Propagate the convention of the subprogram
305         to the subprogram pointer type.
306         (Make_Secondary_DT): Replace generation of Prim'Address by
307         Address (Prim'Unrestricted_Access)
308         (Make_DT): Replace generation of Prim'Address by
309         Address (Prim'Unrestricted_Access)
310         (Make_Disp_*_Bodies): When compiling for a restricted profile, use
311         simple call form for single entry.
312         (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
313         tables of predefined primitives).
314         (Make_Secondary_DT): Add support to handle access to dispatch tables of
315         predefined primitives.
316         (Make_Tags): Add entities to Access_Dispatch_Table associated with
317         access to dispatch tables containing predefined primitives.
318
319         * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
320         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
321         this change.
322         (Register_Predefined_DT_Entry): Updated to handle the new contents
323         of attribute Access_Disp_Table (pointers to dispatch tables containing
324         predefined primitives).
325
326         * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
327         subprogram.
328         (Find_Interface_ADT): Updated to skip the new contents of attribute
329         Access_Dispatch_Table (pointers to dispatch tables containing predefined
330         primitives).
331
332         * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
333         concurrent types.
334         (Set_Convention): Use new function Is_Access_Subprogram_Type
335         (Collect_Interfaces_Info): Updated to skip the new contents of attribute
336         Access_Dispatch_Table (pointers to dispatch tables containing predefined
337         primitives).
338
339         * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
340         expanded code avoiding calls to Build_Predef_Prims.
341         (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
342         call to Build_Get_Predefined_Prim_Op_Address.
343
344 2008-03-26  Javier Miranda  <miranda@adacore.com>
345
346         * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
347         subprogram Corresponding_Runtime_Package to know the runtime package
348         that will provide support to a given protected type.
349
350         * exp_ch9.adb (Add_Private_Declarations,
351         Build_Protected_Subprogram_Call,
352         Build_Protected_Entry, Build_Simple_Entry_Call,
353         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
354         Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
355         cleanup using the new centralized subprogram Corresponding_Runtime
356         Package to know the runtime package that provides support to
357         a given protected type.
358
359 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
360
361         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
362         assignment is within the initialization procedure for a packed array,
363         and Initialize_Scalars is enabled, compile right-hand side with checks
364         off, because the value is purposely out of range.
365
366 2008-03-26  Vincent Celier  <celier@adacore.com>
367
368         * gnatcmd.adb: Add processing for GNAT SYNC
369
370         * vms_conv.ads: (Command_Type): Add command Sync
371
372         * vms_conv.adb (Initialize): Add Command_List data for new command Sync
373
374         * vms_data.ads: Add entries for -gnatw.w
375         Add qualifier for gnatstub --header-file option
376         Add switches for GNAT SYNC
377
378         * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
379         (Add_Package_Name): New procedure
380         (Package_Name_List): New function
381         (Initialize): Add known package names to the list
382         (Register_New_Package): Add the new package name to the list
383
384 2008-03-26  Robert Dewar  <dewar@adacore.com>
385
386         * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
387         s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
388         Raise_Exception by "raise with" construct.
389
390 2008-03-26  Pascal Obry  <obry@adacore.com>
391
392         * Makefile.in: Add proper GNAT.Serial_Communications implementation on
393         supported platforms.
394         
395         * Makefile.rtl: Add g-sercom.o.
396         
397         * impunit.adb: Add g-sercom.adb.
398         
399         * s-crtl.ads (open): New routine.
400         (close): Likewise.
401         (write): Likewise.
402         
403         * s-osinte-mingw.ads (BYTE): New type.
404         (CHAR): Likewise.
405         (OVERLAPPED): Likewise.
406         (GENERIC_READ): New constant.
407         (GENERIC_WRITE): Likewise.
408         (OPEN_EXISTING): Likewise.
409         (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
410         type instead.
411         (CreateFile): New routine.
412         (WriteFile): Likewise.
413         (ReadFile): Likewise.
414         (CloseHandle): Move next to the other file oriented routines.
415
416         * g-sercom.ads: New unit.
417
418         * g-sercom.adb: Default implementation, calls to this unit will raise
419         a program error exception.
420         
421         * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
422         GNU/Linux implementations.
423
424 2008-03-26  Robert Dewar  <dewar@adacore.com>
425
426         * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
427
428         * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
429         unchecked conversion for different conventions only for subprogram
430         pointers or on VMS.
431
432 2008-03-26  Vincent Celier  <celier@adacore.com>
433
434         * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
435         to check if the specified object file is correct.
436
437 2008-03-26  Thomas Quinot  <quinot@adacore.com>
438
439         * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
440         Comes_From_Source to exclude primitives from being checked. We want to
441         exclude predefined primitives only, so use the appropriate specific
442         predicate. Also, flag a formal parameter of an anonymous
443         access-to-subprogram type as illegal for a primitive operation of a
444         remote access to class-wide type.
445
446 2008-03-26  Vincent Celier  <celier@adacore.com>
447
448         * prj-dect.adb (Parse_Package_Declaration): When a package name is not
449         known, check if it may be a missspelling of a known package name. In
450         not verbose, not mode, issue warnings only if the package name is a
451         possible misspelling.
452         In verbose mode, always issue a warning for a not known package name,
453         plus a warning if the name is a misspelling of a known package name.
454
455         * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
456         limited withs or limited withs are parse during one call.
457         (Parse_Single_Project): Post parse context clause in two passes: non
458         limited withs before current project and limited withs after current
459         project.
460
461         * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
462         project with the name With_Name, even if it is only extended indirectly.
463         (Recursive_Process): Process projects in order: first single withs, then
464         current project, then limited withs.
465
466         * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
467         project with the name With_Name, even if it is only extended indirectly.
468
469 2008-03-26  Robert Dewar  <dewar@adacore.com>
470
471         * scn.adb (Initialize_Scanner): Format messages belong on standard error
472
473 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
474
475         * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
476         a generic subprogram that is imported, do not attempt to compile
477         non-existent body.
478
479         * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
480         imported, do not generate a raise_program_error for the non-existent
481         body.
482         (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
483         perform minimal name resolution on the generic to avoid spurious
484         warnings.
485         (Find_Actual_Type): the designated type of the actual in a child unit
486         may be declared in a parent unit without being an actual.
487
488 2008-03-26  Robert Dewar  <dewar@adacore.com>
489
490         * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
491         * sinfo.ads, sinfo.adb (From_At_End): New flag
492
493 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
494
495         * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
496         operations that have an interface parameter.
497         (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
498         Don't treat No_Return call as raise.
499
500         * sem_disp.adb (Check_Dispatching_Operations): apply check for
501         non-primitive interface primitives to access parameters, not to all
502         parameters of an access type.
503
504 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
505
506         * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
507         declarations of a parent unit are made visible when compiling a child
508         instance, the parent is not a hidden open scope, even though it may
509         contain other pending instance.
510         
511         * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
512         hidden open scope for some child instance, it does affect the
513         visibility status of other stach entries.
514         (Analyze_Object_Renaming): Check that a class-wide object cannot be
515         renamed as an object of a specific type.
516
517 2008-03-26  Robert Dewar  <dewar@adacore.com>
518
519         * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
520         recursion and raise SE directly.
521         (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
522         set for formal type for IN mode parameter.
523
524 2008-03-26  Robert Dewar  <dewar@adacore.com>
525
526         * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
527         (Initialize): New procedure
528         (Output_Warnings_Off_Warnings): New procedure
529         (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
530         (Output_Non_Modifed_In_Out_Warnings): Ditto
531         (Warn_On_Unreferenced_Entity): Ditto
532
533 2008-03-26  Vincent Celier  <celier@adacore.com>
534
535         * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
536         readable.
537
538 2008-03-26  Matthew Heaney  <heaney@adacore.com>
539
540         * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads, 
541         a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
542         Marked with clauses as private, and controlled operations as overriding
543
544 2008-03-26  Robert Dewar  <dewar@adacore.com>
545
546         * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
547
548 2008-03-26  Robert Dewar  <dewar@adacore.com>
549
550         * back_end.adb, back_end.ads: Minor reformatting
551
552         * bindgen.adb: Minor clarification of comments
553
554         * fname.ads: Minor comment fixes
555
556         * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
557         prj-nmsc.adb, sem_aggr.adb: Minor reformatting
558
559         * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
560         xsnames.adb: Remove warnings off pragma no longer needed
561
562         * a-catizo.ads, a-calari.ads, a-calfor.adb,
563         a-calfor.ads: Fix header.
564
565 2008-03-26  Tristan Gingold  <gingold@adacore.com>
566
567         * init.c: Do not adjust pc for HPARITH on alpha/vms.
568
569 2008-03-26  Robert Dewar  <dewar@adacore.com>
570
571         * lib-xref.adb: (OK_To_Set_Reference): New function
572         (Generate_Reference): Don't set referenced from occurrence in Warnings,
573         Unmodified, or Unreferenced pragma
574
575 2008-03-26  Robert Dewar  <dewar@adacore.com>
576
577         * alloc.ads: Add entries for Warnings_Off_Pragmas table
578
579 2008-03-26  GNAT Script  <nobody@adacore.com>
580
581         * Make-lang.in: Makefile automatically updated
582
583 2008-03-26  Robert Dewar  <dewar@adacore.com>
584
585         * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
586         par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
587         removed, use Chars (Pragma_Identifier (..  instead, adjustments
588         throughout to accomodate this change.
589
590         * s-pooglo.ads, s-pooloc.ads: Minor comment updates
591
592         * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
593         Einfo.Set_Needs_Debug_Info)
594
595 2008-03-26  Robert Dewar  <dewar@adacore.com>
596
597         * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
598         Add description for the new gnatstub option '--header-file'
599         clarification of -gnatwz/-gnatwZ
600         Add a "Irix-Specific Considerations" section to document the need to
601         set LD_LIBRARY_PATH when using the default shared runtime library.
602         Added documentation for both gcov and gprof.
603
604         * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
605         messages that are not suppressed when clients are compiled.
606         Add documentation of s-pooglo s-pooloc
607         Document the new GNAT.Serial_Communications API.
608         Add documentation for 'Old attribute
609         Add description of pragma Optimize_Alignment
610
611         * ug_words: Add entries for -gnatw.w -gnatw.W
612
613         * usage.adb: Add line for -gnatw.w (warn on warnings off)
614
615 2008-03-25  Eric Botcazou  <ebotcazou@adacore.com>
616
617         Revert
618         2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
619         PR ada/35186
620         * decl.c (maybe_pad_type): Avoid padding an integral type when
621         bumping its alignment is sufficient.
622
623 2008-03-25  Arnaud Charlet  <charlet@adacore.com>
624
625         * exp_ch6.adb, exp_disp.adb: Update copyright notice.
626         Fix wrong formatting (lines too long)
627
628 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
629
630         * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
631         a-calend-vms.adb, a-calend.adb, a-calend.ads,
632         a-calfor.adb, a-chahan.ads, a-chtgke.adb,
633         a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
634         a-cohama.ads, a-comlin.ads, a-coorse.adb,
635         a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
636         a-except-2005.ads, a-except.adb, a-except.ads,
637         a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
638         a-exextr.adb, a-filico.ads, a-finali.ads,
639         a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
640         a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
641         a-sequio.ads, a-strbou.ads, a-strfix.adb,
642         checks.adb, exp_ch3.adb, exp_ch4.adb,
643         exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
644         exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
645         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
646         exp_dbug.ads, exp_disp.adb, exp_dist.adb,
647         exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
648
649 2008-03-24  Robert Dewar  <dewar@adacore.com>
650
651         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
652         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
653         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
654         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
655         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
656         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
657         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
658         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
659         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
660         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
661         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
662         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
663         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
664         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
665         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
666         double spaced if it fits on one line and otherwise single spaced.
667
668 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
669
670         PR documentation/15479
671         * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
672         (doc/gnat_ugn_unw.texi): ... this, and adjusted.
673         (doc/gnat_ugn.info): Renamed from ...
674         (doc/gnat_ugn_unw.info): ... this.
675         (doc/gnat_ugn.dvi): Renamed from ...
676         (doc/gnat_ugn_unw.dvi): ... this.
677         (doc/gnat_ugn.pdf): Renamed from ...
678         (doc/gnat_ugn_unw.pdf): ... this.
679         (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
680         Adjusted.
681         * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
682         unconditionally to gnat_ugn.info.  Fix cross references to the
683         GNAT Reference Manual.  Convert links to the GCC, GDB, Emacs,
684         and GNU make manuals to be proper texinfo links.
685         * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
686
687 2008-03-21  Olivier Hainque  <hainque@adacore.com>
688
689         * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
690         ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
691
692 2008-03-21  Eric Botcazou  <ebotcazou@adacore.com>
693
694         * trans.c (addressable_p): Add notes on addressability issues.
695
696 2008-03-21  Olivier Hainque  <hainque@adacore.com>
697             Ed Schonberg  <schonberg@adacore.com>
698
699         * trans.c (addressable_p): Accept COND_EXPR when both arms
700         are addressable.
701         (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
702         (call_to_gnu): Do not use name reference in the error message
703         for a misaligned by_reference_parameter. The actual may be a
704         general expression.
705
706 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
707
708         * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
709         
710 2008-03-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
711
712         * gnat_rm.texi (Implementation Defined Characteristics)
713         (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
714         appropriate.
715         * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
716         (Switches for gnatchop, Installing a library): Likewise.
717
718 2008-03-10  Eric Botcazou  <ebotcazou@adacore.com>
719
720         * trans.c (emit_range_check): Do not emit the check if the base type
721         of the expression is the type against which its range must be checked.
722
723 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
724
725         * decl.c (maybe_pad_type): Use value_factor_p.
726
727 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
728
729         * lang.opt (nostdlib): Move around.
730         * misc.c (gnat_handle_option): Fix formatting.
731         (gnat_dwarf_name): Move around.
732         * trans.c (Case_Statement_to_gnu): Fix formatting.
733         (gnat_to_gnu): Likewise.
734         * utils.c (aggregate_type_contains_array_p): Likewise.
735         (create_subprog_decl): Likewise.
736
737 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
738
739         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
740         bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
741
742 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
743
744         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
745         BIGGEST_ALIGNMENT when capping the alignment of records with
746         strict alignment and size clause.
747
748 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
749
750         * lang-specs.h: Pass -gnatwa if -Wall is passed.
751         * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
752         and -Wuninitialized.
753         (gnat_post_options): Clear warn_unused_parameter.
754
755 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
756
757         * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
758         aligned bit-fields, bumping the alignment of the record type if deemed
759         profitable.
760         (value_factor_p): Return false instead of 0.
761
762 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
763
764         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
765         for scalar types with small alignment.
766
767 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
768
769         * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
770         from that of the front-end's end label.
771         (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
772         from that of the loop label.
773
774 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
775
776         * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
777         comment for the packed array type case.
778         * utils.c (build_template): Use a loop to strip padding or
779         containing records for justified modular types.
780
781 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
782
783         * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
784         large alignments specified for types.
785         (validate_alignment): Minor cleanup.
786
787 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
788
789         * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
790         (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
791         the component for packing, if possible, as well as if a component
792         size clause is specified.
793         <E_Record_Subtype>: For an array type used to implement a packed
794         array, get the component type from the original array type.
795         Try to get a smaller form of the component for packing, if possible,
796         as well as if a component size clause is specified.
797         (round_up_to_align): New function.
798         (make_packable_type): Add in_record parameter.
799         For a padding record, preserve the size.  If not in_record and the
800         size is too large for an integral mode, attempt to shrink the size
801         by lowering the alignment.
802         Ditch the padding bits of the last component.
803         Compute sizes and mode manually, and propagate the RM size.
804         Return a BLKmode record type if its size has shrunk.
805         (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
806         Use Original_Array_Type to retrieve the type in case of an error.
807         Adjust call to make_packable_type.
808         (gnat_to_gnu_field): Likewise.
809         (concat_id_with_name): Minor tweak.
810         * trans.c (larger_record_type_p): New predicate.
811         (call_to_gnu): Compute the nominal type of the object only if the
812         parameter is by-reference.  Do the conversion actual type -> nominal
813         type if the nominal type is a larger record.
814         (gnat_to_gnu): Do not require integral modes on the source type to
815         avoid the conversion for types with identical names.
816         (addressable_p): Add gnu_type parameter.  If it is specified, do not
817         return true if the expression is not addressable in gnu_type.
818         Adjust recursive calls.
819         * utils.c (finish_record_type): Remove dead code.
820
821 2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
822
823         PR ada/35186
824         * decl.c (maybe_pad_type): Avoid padding an integral type when
825         bumping its alignment is sufficient.
826
827 2008-03-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
828
829         * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
830         * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
831         statement.
832         * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
833         gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
834         sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
835         code output strings.
836         * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
837         system-vms_64.ads: Fix typos in ada source code comments.
838         * sinfo-cn.adb: Remove incomplete sentence.
839
840         PR documentation/15479
841         * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
842
843 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
844
845         PR ada/22255
846         * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
847
848 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
849
850         PR ada/34799
851         * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
852         that underlying type is present.
853
854 2008-02-26  Tom Tromey  <tromey@redhat.com>
855
856         * misc.c (internal_error_function): Remove test of
857         USE_MAPPED_LOCATION.
858         * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
859         (Sloc_to_locus): Remove old location code.
860
861 2008-02-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
862
863         * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
864         `i.e.' by adding comma or `@:' as appropriate.
865         * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
866         plain characters `C', use `@samp{C}'.
867         * gnat_ugn.texi (File Naming Rules, About gnatkr)
868         (Krunching Method): Likewise.
869
870         * gnat_ugn.texi (Conventions): List environment variables and
871         metasyntactic variables.
872         (Compiling Programs): Fix notation of metasyntactic variables.
873         Add @file where appropriate.  Use @file for file extensions,
874         @samp for strings.
875         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
876         instead of @file, @env instead of @code.
877
878 2008-02-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
879
880         PR documentation/15479
881         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
882         and `...' with `@dots{}' or `@enddots{}'.
883
884         PR documentation/15479
885         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
886         use @command instead of @code, @option instead of @samp or @code,
887         @code instead of @var, @samp instead of @file.
888
889         PR documentation/15479
890         * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
891         in Makefile rules, by using `&&' rather than `;'.
892
893 2008-02-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
894
895         PR documentation/15479
896         * gnat_ugn.texi: In non-code, avoid space before colon.
897         (Regular Expressions in gnatfind and gnatxref): Fix indentation.
898         (Examples of gnatxref Usage): Use @command{vi} instead of
899         @file{vi}.
900         (Character Set Control): Do not use @code for UTF-8.
901         (Validity Checking): Fix typo "NaNs" instead of "NaN's".  Do not
902         use @code for IEEE.
903         * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
904         sample.
905         * gnat_rm.texi, gnat_ugn.texi: Fix typos.  Bump copyright years.
906
907 2008-02-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
908
909         PR ada/35143
910         * env.c: Add __rtems__ to if defined.
911         * s-osinte-rtems.adb: Add To_Target_Priority.  Fix formatting.
912         * s-osinte-rtems.ads: Add To_Target_Priority prototype and
913         PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants.  Add
914         pragma Convention as required.
915         * gsocket.h: Make compile in and out of RTS.
916         * Makefile.in: Add system-rtems.ads.  Build DEC extensions.
917         Use g-soccon-rtems.ads.
918         * g-soccon-rtems.ads, system-rtems.ads: New files.
919
920 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
921
922         PR other/35107
923         * Make-lang.in (gnat1): Add $(GMPLIBS).
924
925 2008-01-26  Eric Botcazou  <ebotcazou@adacore.com>
926
927         * decl.c (components_to_record): Improve comment.
928
929 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
930
931         * decl.c (components_to_record): Do not reuse the empty union type
932         if there is a representation clause on the record.
933         * trans.c (addressable_p): Return true for INTEGER_CST.
934
935 2008-01-21  Eric Botcazou  <ebotcazou@adacore.com>
936
937         * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
938         in pointer arithmetics.
939         * utils2.c (build_allocator): Likewise.
940
941 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
942
943         * utils.c (build_function_stub): Properly build the call expression.
944
945 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
946
947         * decl.c (gnat_to_gnu_entity) <object>: Process renamings
948         before converting the expression to the type of the object.
949         * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
950         Stabilize constructors for special wrapping types.
951
952 2008-01-13  Eric Botcazou  <ebotcazou@adacore.com>
953
954         * trans.c (call_to_gnu): Invoke the addressable_p predicate only
955         when necessary.  Merge some conditional statements.  Update comments.
956         Rename unchecked_convert_p local variable to suppress_type_conversion.
957         Do not suppress conversions in the In case.
958         (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
959         into account on non strict-alignment platforms.
960
961 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
962
963         * utils.c (aggregate_type_contains_array_p): New predicate.
964         (create_field_decl): In a packed record, force byte alignment
965         for fields without specified position that contain an array.
966
967 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
968
969         * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
970
971 2008-01-10  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>
972
973         PR ada/34466
974         * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
975         sysconf call.
976         (bit_field): New packed boolean type used by cpu_set_t.
977         (cpu_set_t): New type corresponding to the C type with
978         the same name. Note that on the Ada side we use a bit
979         field array for the affinity mask. There is not need
980         for the C macro for setting individual bit.
981         (pthread_setaffinity_np): New imported routine.
982
983 2008-01-03  Tero Koskinen  <tero.koskinen@iki.fi>
984
985         PR ada/34647
986         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
987         on OpenBSD as is done on other BSD systems.
988
989         PR ada/34645
990         * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
991         getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
992         I/O.
993
994         PR ada/34644
995         * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
996         clearenv().
997
998         PR ada/34646
999         * init.c (__gnat_error_handler, __gnat_install_handler,
1000         __gnat_init_float): Define for OpenBSD.
1001
1002         * initialize.c (__gnat_initialize): Define for OpenBSD.
1003
1004 2007-12-27  Samuel Tardieu  <sam@rfc1149.net>
1005
1006         PR ada/34553
1007         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
1008         instead of mktemp() or tmpnam() on NetBSD.
1009
1010 2007-12-23  Eric Botcazou  <ebotcazou@adacore.com>
1011
1012         * trans.c (call_to_gnu): Make the temporary for non-addressable
1013         In parameters passed by reference.
1014         (addressable_p): Return true for STRING_CST and CALL_EXPR.
1015
1016 2007-12-19  Robert Dewar  <dewar@adacore.com>
1017
1018         * g-expect-vms.adb, g-expect.adb, s-poosiz.adb: 
1019         Add pragma Warnings (Off) for unassigned IN OUT arguments
1020
1021         * sem_warn.adb (Output_Reference): Suppress messages for internal names
1022         (Check_References): Extensive changes to tune up warnings
1023         (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
1024         (Has_Pragma_Unmodifed_Check_Spec): New function
1025         (Check_References): Implement pragma Unmodified
1026         (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
1027
1028         * par-prag.adb: Dummy entry for pragma Unmodified
1029
1030         * sem_prag.adb: Implement pragma Unmodified
1031
1032         * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
1033         (Proc_Next_Component_Or_Discriminant): Fix typo.
1034         Update comments.
1035
1036         * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
1037         Unmodified.
1038         (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
1039         because the former already takes care of discarding the result.
1040         (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
1041         Add comment.
1042
1043         * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
1044
1045 2007-12-19  Eric Botcazou  <ebotcazou@adacore.com>
1046
1047         * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
1048         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
1049         system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
1050         system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
1051         system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
1052         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
1053         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
1054         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
1055         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
1056         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
1057         (Dynamic_Trampolines_Used): Delete.
1058
1059         * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
1060         Turn on stack probing mechanism on LynxOS.
1061
1062 2007-12-19  Bob Duff  <duff@adacore.com>
1063
1064         * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
1065         the resulting tail recursion by hand. This prevents running out of
1066         memory on deeply nested concatenations, since Field2 is where the left
1067         operand of concatenations is stored.
1068         Fix bug (was returning OK_Orig in some cases). Fix return subtype to
1069         clarify that it can only return OK or Abandon.
1070
1071         * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
1072         operand by iteration, in order to avoid running out of memory on
1073         deeply-nested concatenations. Use the Parent pointer to get back up the
1074         tree.
1075         (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
1076          Resolve_Op_Concat_Rest): New procedures split out of
1077         Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
1078         clearer.
1079
1080         * checks.adb (Remove_Checks): Use Traverse_Proc instead of
1081         Traverse_Func, because the former already takes care of discarding the
1082         result.
1083
1084         * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
1085         because the former already takes care of discarding the result.
1086         (Remove_Warning_Messages): Use appropriate subtype for Status and
1087         Discard 
1088
1089 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1090
1091         * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
1092         discriminants forces expansion of the aggregate into assignments.
1093         (Init_Record_Controller):  If the type of the aggregate is untagged and
1094         is not inherently limited, the record controller is not limited either.
1095
1096 2007-12-19  Robert Dewar  <dewar@adacore.com>
1097
1098         * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
1099         handling compile time known size of record or array (case of front end
1100         layout active, e.g. in GNAAMP).
1101
1102 2007-12-19  Javier Miranda  <miranda@adacore.com>
1103
1104         * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
1105         that forces the construction of static dispatch tables in case of
1106         record subtypes.
1107
1108 2007-12-19  Robert Dewar  <dewar@adacore.com>
1109
1110         * exp_ch9.adb (Null_Statements): Moved to library level
1111         (Trivial_Accept_OK): New function
1112         (Expand_Accept_Declaration): Use Trivial_Accept_OK
1113         (Expand_N_Accept_Statement): Use Trivial_Accept_OK
1114
1115 2007-12-19  Robert Dewar  <dewar@adacore.com>
1116
1117         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
1118         in complex case where array is Volatile.
1119
1120 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1121
1122         * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
1123         properly the Ada2005 rules concerning when the current instance of a
1124         record type is aliased.
1125
1126 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1127
1128         * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
1129         mangled declaration
1130         (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
1131         declarations.
1132         (P_Variant_Part): Cleaner patch for parenthesized discriminant
1133
1134 2007-12-19  Vincent Celier  <celier@adacore.com>
1135
1136         * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
1137         package is not known
1138
1139         * prj-attr.ads (Unknown_Package): New constant
1140         Do not crash when an unknown package is in several projects
1141
1142         * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
1143         ignored
1144
1145         * prj-nmsc.adb (Check): Remove obsolete code related to no longer
1146         existing package Language_Processing.
1147
1148 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1149             Gary Dismukes  <dismukes@adacore.com>
1150             Samuel Tardieu  <sam@rfc1149.net>
1151
1152         PR ada/15803, ada/15805
1153         * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
1154         illegal access subtypes when there is a constrained partial view.
1155         (Check_For_Premature_Usage): New procedure inside
1156         Access_Subprogram_Declaration for checking that an access-to-subprogram
1157         type doesn't reference its own name within any formal parameters or
1158         result type (including within nested anonymous access types).
1159         (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
1160         (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
1161         context is an access_to_variable, the expression cannot be an
1162         access_to_constant.
1163
1164 2007-12-19  Bob Duff  <duff@adacore.com>
1165
1166         * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
1167         (Analyze_Concatenation): Use iteration instead of recursion in order
1168         to avoid running out of stack space for deeply nested concatenations.
1169
1170 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1171             Gary Dismukes  <dismukes@adacore.com>
1172
1173         * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
1174         whose renamed entity is a subprogram that requires overriding.
1175         (Premature_Usage): Test for the case of N_Full_Type_Declaration when
1176         issuing an error for premature usage and issue a message that says
1177         'type' rather than 'object'.
1178
1179 2007-12-19  Gary Dismukes  <dismukes@adacore.com>
1180
1181         PR ada/34149
1182         * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
1183         presence of a statically tagged operand (Present (Static_Tag)) with
1184         test for Indeterm_Ancestor_Call when determining whether to propagate
1185         the static tag to tag-indeterminate operands (which forces dispatching
1186         on such calls).
1187         (Check_Controlling_Formals): Ada2005, access parameters can have
1188         defaults.
1189         (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
1190         not insert subprogram in list of primitive operations if already there.
1191
1192 2007-12-19  Tristan Gingold  <gingold@adacore.com>
1193
1194         * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
1195         global variable.
1196
1197 2007-12-19  Thomas Quinot  <quinot@adacore.com>
1198
1199         Part of PR ada/33688
1200         * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
1201         datagram info on Linux.
1202
1203 2007-12-19  Vincent Celier  <celier@adacore.com>
1204
1205         * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
1206         that the source path name is always found in the dependencies.
1207
1208 2007-12-19  Robert Dewar  <dewar@adacore.com>
1209
1210         * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
1211         Fix name of Wide_Wide_Latin_1/9 file names
1212         Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
1213         Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
1214         Add missing documentation for Ada.Command_Line.Response_File
1215         Update list of warning letters for Warnings pragma
1216         Add documentation for pragma Unmodified
1217
1218 2007-12-19  Samuel Tardieu  <sam@rfc1149.net>
1219
1220         * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
1221
1222 2007-12-17  Arnaud Charlet  <charlet@adacore.com>
1223
1224         * s-vxwork-alpha.ads: Removed, no longer used.
1225
1226 2007-12-15  Jakub Jelinek  <jakub@redhat.com>
1227
1228         * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
1229
1230 2007-12-13  Samuel Tardieu  <sam@rfc1149.net>
1231
1232         PR ada/34360
1233         * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
1234         mlib-tgt-specific.adb.
1235
1236 2007-12-13  Bob Duff  <duff@adacore.com>
1237
1238         * trans.c (Attribute_to_gnu): Check for violations of the
1239         No_Implicit_Dynamic_Code restriction. This checking used to be done in
1240         the front end, but is moved here so we can make it more accurate.
1241
1242 2007-12-13  Pascal Obry  <obry@adacore.com>
1243
1244         * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
1245          version is provided for older GNU/Linux distribution not
1246          supporting thread affinity sets.
1247         
1248         * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
1249         call.
1250         (bit_field): New packed boolean type used by cpu_set_t.
1251         (cpu_set_t): New type corresponding to the C type with
1252         the same name. Note that on the Ada side we use a bit
1253         field array for the affinity mask. There is not need
1254         for the C macro for setting individual bit.
1255         (pthread_setaffinity_np): New imported routine.
1256         
1257         * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
1258         no null.
1259         (Create_Task): Set the processor affinity mask if information
1260         is present.
1261         
1262         * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
1263         
1264 2007-12-13  Robert Dewar  <dewar@adacore.com>
1265
1266         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, 
1267         s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads, 
1268         s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads, 
1269         s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
1270         s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
1271         s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads, 
1272         s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads, 
1273         i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
1274         for subprogram pointers.
1275
1276         * g-ctrl_c.adb: New file.
1277
1278         * g-ctrl_c.ads (Install_Handler): New body.
1279
1280         * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
1281         instead of obsolete function Is_Always_Inlined.
1282         (Freeze_Entity): check for tagged type in imported C subprogram
1283         (Freeze_Entity): check for 8-bit boolean in imported C subprogram
1284         (Freeze_Entity): check for convention Ada subprogram pointer in
1285         imported C subprogram.
1286         (Freeze_Fixed_Point_Type): In the case of a base type where the low
1287         bound would be chopped off and go from negative to zero, force
1288         Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
1289         bound) so that the size computation for the base type will take
1290         negative values into account.
1291
1292 2007-12-13  Eric Botcazou  <ebotcazou@adacore.com>
1293             Bob Duff  <duff@adacore.com>
1294             Tristan Gingold  <gingold@adacore.com>
1295
1296         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
1297         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, 
1298         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
1299         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
1300         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, 
1301         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
1302         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
1303         system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
1304         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
1305         system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
1306         system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
1307         (Always_Compatible_Rep): New flag to control trampolines globally.
1308         (Dynamic_Trampolines_Used): New flag for implementing the
1309         No_Implicit_Dynamic_Code restriction more correctly (not yet used,
1310         and not yet set correctly for some targets).
1311
1312         * s-taprop-vxworks.adb: Use stack limit method of stack checking.
1313         Simply indirectly call s-stchop when a task is created.
1314
1315         * ali.ads: 
1316         New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
1317         appears as an argument (entries A) in an ALI file.
1318
1319         * fe.h (Stack_Check_Limits): Declare new target parameter.
1320         (Check_Implicit_Dynamic_Code_Allowed): New procedure.
1321
1322         * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
1323         This variable is declared in C to be sure not subject to elaboration
1324         code.
1325         (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
1326         Storage_Error.
1327
1328         * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
1329         (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
1330
1331         * s-stchop.ads: Add comments.
1332
1333         * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
1334         limit method of stack checking.
1335
1336         * s-stchop-limit.ads: New file.
1337
1338 2007-12-13  Robert Dewar  <dewar@adacore.com>
1339
1340         * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb, 
1341         a-cihama.adb, g-awk.adb, 
1342         s-inmaop-posix.adb: Update handling of assigned value/unreferenced
1343         warnings
1344
1345         * exp_smem.adb: Update handling of assigned value/unreferenced warnings
1346
1347         * sem.adb: Update handling of assigned value/unreferenced warnings
1348
1349         * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
1350
1351         * lib-xref.ads: Improve documentation for k xref type
1352
1353         * lib-xref.adb: 
1354         Update handling of assigned value/unreferenced warnings
1355         (Generate_Reference): Warning for reference to entity for which a
1356         pragma Unreferenced has been given should be unconditional.
1357         If the entity is a discriminal, mark the original
1358         discriminant as referenced.
1359
1360         * sem_warn.ads, sem_warn.adb
1361         (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
1362         no entities referenced in package
1363         (Check_One_Unit): Don't give message about no entities referenced in
1364         a package if a pragma Unreferenced has appeared.
1365         Handle new warning flag -gnatw.a/-gnatw.A
1366         Update handling of assigned value/unreferenced warnings
1367
1368         * atree.h: Add flags up to Flag247
1369         (Flag231): New macro.
1370
1371 2007-12-13  Jose Ruiz  <ruiz@adacore.com>
1372
1373         * adaint.h: (__gnat_plist_init): Not defined for RTX.
1374
1375         * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
1376         RTX systems.
1377
1378         * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
1379         (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
1380         EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
1381         GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
1382
1383         * mingw32.h: 
1384         Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
1385
1386         * sysdep.c (winflush_function for RTX): Procedure that does nothing
1387         since we only have problems with Windows 95/98, which are not
1388         supported by RTX.
1389         (__gnat_ttyname): Return the empty string on Nucleus, just as
1390         done on vxworks.
1391
1392 2007-12-13  Robert Dewar  <dewar@adacore.com>
1393
1394         * a-textio.adb, a-textio.ads: 
1395         Extensive changes to private part for wide character encoding
1396
1397         * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
1398         (Look_Ahead): Fix mishandling of encoded sequences
1399         Move declaration of Wch_Con to private part (should not be visible)
1400
1401         * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
1402         UTF-8. Probably this is never used, but if it is, brackets is
1403         clearly correct.
1404
1405         * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
1406         setting wide character encoding for no main program case and when
1407         encoding is specified using -W?
1408         Initialize stack limit of environment task if stack limit method of
1409         stack checking is enabled.
1410         (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
1411         (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
1412         (Get_Main_Unit_Name): New function.
1413         (Gen_Adainit_Ada): Add call to main program for .NET when needed.
1414         (Gen_Output_File): Set Bind_Main_Program to True for .NET
1415
1416         * bindusg.adb: Add line for -Wx switch
1417
1418         * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
1419         Add comments
1420         Add new useful constant WC_Longest_Sequences
1421
1422         * switch-b.adb: Clean up handling of -Wx switch
1423         For -gnatWx, set Wide_Character_Encoding_Method_Specified
1424
1425         * switch-c.adb: -gnatg activates warning on assertion errors
1426         For -gnatWx, set Wide_Character_Encoding_Method_Specified
1427
1428         * s-wchcon.adb: (Is_Start_Of_Encoding): New function
1429
1430 2007-12-13  Robert Dewar  <dewar@adacore.com>
1431             Ed Schonberg  <schonberg@adacore.com>
1432
1433         * a-ngcoty.adb: New pragma Fast_Math
1434
1435         * opt.adb: New pragma Fast_Math
1436
1437         * par-prag.adb: 
1438         Add Implemented_By_Entry to the list of pragmas which do not require any
1439         special processing.
1440         (Favor_Top_Level): New pragma.
1441         New pragma Fast_Math
1442
1443         * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
1444         (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
1445         Expand_Allocator_Expression): Take into account VM_Target
1446         (Expand_Attribute, case 'Identity):  Handle properly the case where
1447         the prefix is a task interface.
1448         New pragma Fast_Math
1449
1450         * par.adb (Next_Token_Is): New function
1451         (P_Pragma): Add Skipping parameter
1452         (U_Left_Paren): New procedure
1453         (U_Right_Paren): New procedure
1454         New pragma Fast_Math
1455
1456         * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
1457         subunit
1458         New pragma Fast_Math
1459
1460         * sem_prag.adb: Add significance value to table Sig_Flag for pragma
1461         Implemented_By_Entry.
1462         (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
1463         (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
1464         items, since it can apply to more than one overloadable entity. Set
1465         new flag Has_Pragma_Inline_Always for Inline_Always case.
1466         (Analyze_Pragma, case Complex_Representation): Improve error message.
1467         (Analyze_Pragma, case Assert): When assertions are disabled build the
1468         rewritten code with Sloc of expression rather than pragma, so new
1469         warning about failing is not deleted.
1470         (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
1471         protected types and update error message to reflect that. Test whether
1472         the protected type is allowed for the pragma (an error is issued if the
1473         type has any entries, or components that do not have preelaborable
1474         initialization).
1475         New pragma Fast_Math
1476         (Analyze_Pragma, case No_Return): Handle generic instance
1477
1478         * snames.h, snames.ads, snames.adb: 
1479         Add new predefined name for interface primitive _Disp_Requeue.
1480         New pragma Fast_Math
1481
1482         * a-tags.ads, a-tags.adb: New calling sequence for
1483         String_To_Wide_[Wide_]String
1484         (Secondary_Tag): New subprogram.
1485
1486         * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
1487         from Exp_Attr
1488         New calling sequence for String_To_Wide_[Wide_]String
1489         (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
1490         the use of the secondary stack for image routines.
1491
1492         * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
1493         calling sequence for String_To_Wide_[Wide_]String
1494
1495         * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
1496         Ada 95 mode
1497         (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
1498         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1499
1500         * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
1501         (P_Formal_Part): Use Skipping parameter in P_Pragma call
1502         to improve error recovery
1503
1504         * par-util.adb (Next_Token_Is): New function
1505         (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
1506
1507         * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
1508         semicolon if missing
1509         (P_Pragma): Implement new Skipping parameter
1510         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1511         Fix location of flag for unrecognized pragma message
1512
1513         * par-tchk.adb (U_Left_Paren): New procedure
1514         (U_Right_Paren): New procedure
1515
1516 2007-12-13  Geert Bosch  <bosch@adacore.com>
1517
1518         * a-tifiio.adb: 
1519         (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
1520         the second or later Scaled_Divide would omit leading zeroes,
1521         resulting in too few digits produced and a Layout_Error as result.
1522         (Put): Initialize Pos.
1523
1524 2007-12-13  Robert Dewar  <dewar@adacore.com>
1525
1526         atree.ads, atree.adb (Flag231..Flag247): New functions
1527         (Set_Flag231..Set_Flag247): New procedures
1528         (Basic_Set_Convention): Rename Set_Convention to be
1529         Basic_Set_Convention
1530         (Nkind_In): New functions
1531         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1532
1533         * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
1534         instead
1535          of obsolete function Is_Always_Inlined
1536         (Register_Predefined_DT_Entry): Initialize slots of the second
1537         secondary dispatch table.
1538         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1539         (Expand_N_Function_Call): Remove special provision for stack checking.
1540
1541         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
1542         Include _Disp_Requeue in the list of predefined operations.
1543         (Find_Interface_ADT): Modified to fulfill the new specification.
1544         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1545
1546         * par-ch4.adb, nlists.ads, nlists.adb: 
1547         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1548
1549         * sinfo.ads, sinfo.adb: (Nkind_In): New functions
1550         Fix location of flag for unrecognized pragma message
1551
1552         * sem_ch7.adb: Use Nkind_In
1553
1554 2007-12-13  Vincent Celier  <celier@adacore.com>
1555
1556         * opt.ads: 
1557         Indicate what flags are used by the Project Manager, gprbuild and
1558         gprclean.
1559         (Opt.Follow_Links_For_Dirs): New flag
1560         (Warn_On_Assertion_Failure): New flag
1561         (Wide_Character_Encoding_Method_Specified): New flag
1562         (Suppress_All_Inlining): New switch set by -fno-inline
1563         (Real_VMS_Target): New flag
1564         New pragma Fast_Math
1565
1566 2007-12-13  Robert Dewar  <dewar@adacore.com>
1567
1568         * back_end.adb: Recognize -fno-inline
1569
1570 2007-12-13  Robert Dewar  <dewar@adacore.com>
1571
1572         * checks.adb: Fix optimization problem with short-circuited form
1573
1574 2007-12-13  Bob Duff  <duff@adacore.com>
1575
1576         * clean.adb (Usage): Add line for -aP
1577         (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
1578         with a parameter "procedure Usage", instead of passing a pointer to a
1579         procedure. This is to eliminate trampolines (since the Usage procedure
1580         is often nested in a main procedure, and it would be inconvenient to
1581         unnest it).
1582
1583         * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
1584         to be generic, with a parameter "procedure Callback (...)", instead of
1585         passing a pointer to a procedure. This is to eliminate trampolines
1586         (since the Callback procedure is usually nested).
1587
1588         * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb, 
1589         gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
1590         (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
1591
1592         * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
1593         Use the generic Heap_Sort_G instead of Heap_Sort_A.
1594
1595 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1596
1597         * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
1598         (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
1599         (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
1600         (Renamed_In_Spec): New flag
1601         (Has_Pragma_Inline_Always): New flag
1602         Add missing doc for pragma Obsolescent_Warning
1603         Add missing doc for 17 additional unused flags (230-247)
1604         (Is_Derived_Type): Remove condition "not Is_Generic_Type".
1605         Alphabetize with clauses.
1606         Separate Is_Thunk and Has_Thunks flags
1607         (Write_Entity_Flags): Add forgotten entry for Has_Thunks
1608         (Related_Interface): Renamed to Related_Type.
1609         (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
1610         (Set_Is_Flag): Restrict the assertion.
1611
1612 2007-12-13  Vincent Celier  <celier@adacore.com>
1613
1614         * errout.adb (Output_Source_Line): Do not keep a trailing space after
1615         the source line number if the source line is empty.
1616
1617 2007-12-13  Geert Bosch  <bosch@adacore.com>
1618
1619         * eval_fat.adb (Decompose_Int): Handle argument of zero.
1620         (Compose): Remove special casing of zero.
1621         (Exponent): Likewise.
1622         (Fraction): Likewise.
1623         (Machine): Likewise.
1624         (Decompose): Update comment.
1625
1626 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
1627
1628         * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
1629         limited ancestor part, initialize controllers of enclosing record
1630         before expanding ancestor aggregate.
1631         (Gen_Assign): If a component of the aggregate is box-initialized, add
1632         code to call Initialize if the component is controlled, and explicit
1633         assignment of null if the component is an access type.
1634
1635         Handle properly aggregates for limited types that appear in object
1636         declarations when the aggregate contains controlled values such as
1637         protected types.
1638         When expanding limited aggregates into individual components, do not
1639         call Adjust on controlled components that are limited.
1640
1641 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
1642
1643         * expander.adb: Take into account N_Subprogram_Renaming_Declaration
1644
1645 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1646
1647         * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
1648         predefined primitive _Disp_Requeue.
1649         (Make_Predefined_Primitive_Specs): Create the spec for predefined
1650         primitive _Disp_Requeue.
1651         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
1652         type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
1653         (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
1654         an interface type. In case of limited interfaces we now declare all the
1655         predefined primitives associated with synchronized interfaces as
1656         abstract.
1657         (Predef_Spec_Or_Body): For interface types generate abstract subprogram
1658         declarations.
1659         (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
1660         tagged type is an interface type and there is no user-defined equality
1661         function.
1662         Add also bodies of predefined primitives associated with synchronized
1663         interfaces.
1664         (Freeze_Record_Type): Do not build bodies of predefined primitives of
1665         interface types because they are now defined abstract.
1666         Add missing documentation.
1667         (Expand_Record_Controller): Update occurrence of Related_Interface
1668         to Related_Type.
1669         (Build_Offset_To_Top_Functions): Do nothing in case of VM.
1670         (Expand_N_Object_Declaration): Take into account VM_Target when handling
1671         class wide interface object declaration.
1672         (Expand_Previous_Access_Type): Do not create a duplicate master entity
1673         if the access type already has one.
1674         (Expand_N_Object_Declaration): Defend against attempt to validity check
1675         generic types. Noticed for -gnatVcf specified with previous errors.
1676
1677 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
1678
1679         * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
1680         Expand_Allocator_Expression): Take into account VM_Target
1681
1682         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
1683         secondary stack when VM_Target /= No_VM
1684
1685 2007-12-13  Javier Miranda  <miranda@adacore.com>
1686             Ed Schonberg  <schonberg@adacore.com>
1687
1688         * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
1689         Is_Complation_Unit by Is_Library_Level_Entity in the code
1690         that decides if the static dispatch tables need to be built.
1691         (Wrap_Transient_Declaration): Do not generate a finalization call if
1692         this is a renaming declaration and the renamed object is a component
1693         of a controlled type.
1694
1695 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
1696
1697         * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
1698         In the case where the renamed subprogram is a dereference, call
1699         Force_Evaluation on the prefix.
1700
1701 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1702             Ed Schonberg  <schonberg@adacore.com>
1703
1704         * exp_ch9.adb (Expand_N_Asynchronous_Select,
1705         Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
1706         comment reformatting.
1707         (Set_Privals): Inherit aliased flag from formal. From code reading.
1708         (Build_Simple_Entry_Call): Out parameters of an access type are passed
1709         by copy and initialized from the actual. This includes entry parameters.
1710         (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
1711         and Ada 2005 models of requeue.
1712         (Null_Statements): Still connsider do-end block null if it contains
1713         Unreferenced and Warnings pragmas.
1714         (Expand_N_Accept_Statement): Do not optimize away null do end if
1715         dispatching policy is other than defaulted.
1716         (Expand_N_Timed_Entry_Call): When the triggering statement is a
1717         dispatching call, manually analyze the delay statement.
1718         (Find_Parameter_Type): Move subprogram to Sem_Util.
1719
1720 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1721             Javier Miranda  <miranda@adacore.com>
1722
1723         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
1724         _Disp_Requeue occupies dispatch table slot number 15. Move
1725         _Disp_Timed_Select to slot 16.
1726         (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
1727         generate the spec and body of _Disp_Reqeueue.
1728         (Make_DT): Build and initialize the second dispatch table.
1729         Handle initialization of RC_Offset when the parent
1730         is a private type with variable size components.
1731         (Make_Secondary_DT): Complete documentation. Add support to
1732         initialize the second dispatch table.
1733         (Make_Tags): Generate the tag of the second dispatch table.
1734         (Register_Primitive): Add support to register primitives in the
1735         second dispatch table.
1736
1737 2007-12-13  Pascal Obry  <obry@adacore.com>
1738
1739         * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
1740         Windows. This signal is used by gnatmake to kill child processes for
1741         example.
1742
1743 2007-12-13  Javier Miranda  <miranda@adacore.com>
1744
1745         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
1746         support for generic dispatching constructor calls in which we need to
1747         locate the tag of a secondary dispatch table associated with an
1748         interface type to properly dispatch the call.
1749         (Expand_N_Attribute_Reference [case Address],
1750         Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
1751         handling of VM targets.
1752
1753 2007-12-13  Robert Dewar  <dewar@adacore.com>
1754             Ed Schonberg  <schonberg@adacore.com>
1755
1756         * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
1757         assert fail
1758
1759         * ug_words: Add entries for -gnatw.a -gnatw.A
1760
1761         * sem_res.adb (Set_String_Literal_Subtype): If the context of the
1762         literal is a subtype with non-static constraints, use the base type of
1763         the context as the base of the string subtype, to prevent type
1764         mismatches in gigi.
1765         (Resolve_Actuals): If the actual is an entity name, generate a
1766         reference before the actual is resolved and expanded, to prevent
1767         spurious warnings on formals of enclosing protected operations.
1768         (Analyze_Overloaded_Selected_Component): If type of prefix if
1769         class-wide, use visible components of base type.
1770         (Resolve_Selected_Component): Ditto.
1771         (Resolve_Short_Circuit): Detect case of pragma Assert argument
1772         evaluating to False, and issue warning message.
1773
1774         * usage.adb: Add lines for -gnatw.a and -gnatw.A
1775
1776 2007-12-13  Emmanuel Briot  <briot@adacore.com>
1777
1778         * g-calend.ads (No_Time): New constant, to represent an uninitialized
1779         time value
1780
1781         * g-catiio.ads, g-catiio.adb (Value): Added support for more date
1782         formats.
1783         (Month_Name_To_Number): New subprogram
1784
1785         * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
1786         letter to upper-case.
1787
1788 2007-12-13  Robert Dewar  <dewar@adacore.com>
1789             Ed Schonberg  <schonberg@adacore.com>
1790
1791         * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
1792
1793         * layout.adb (Resolve_Attribute, case 'Access): If designated type of
1794         context is a limited view, use non-limited view when available. If the
1795         non-limited view is an unconstrained array, this enforces consistency
1796         requirements in 3.10.2 (27).
1797         (Layout_Type): For an access type whose designated type is a limited
1798         view, examine its declaration to determine if it is an unconstrained
1799         array, and size the access type accordingly.
1800         (Layout_Type): Do not force 32-bits for convention c subprogram
1801         pointers in -gnatdm mode, only if real vms target.
1802
1803         * sem_attr.adb (Analyze_Access_Attribute): Use new flag
1804         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
1805         (Analyze_Access_Attribute,Attribute_Address): Remove checks for
1806         violations of the No_Implicit_Dynamic_Code restriction.
1807         (Resolve_Attribute, case 'Access): If designated type of context is a
1808         limited view, use non-limited view when available. If the non-limited
1809         view is an unconstrained array, this enforces consistency requirements
1810         in 3.10.2 (27).
1811         (Layout_Type): For an access type whose designated type is a limited
1812         view, examine its declaration to determine if it is an unconstrained
1813         array, and size the access type accordingly.
1814
1815 2007-12-13  Vincent Celier  <celier@adacore.com>
1816
1817         * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
1818         object directory of main project does not exist.
1819         On VMS, correctly set then environment variable for the source
1820         directories.
1821
1822 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
1823
1824         * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
1825         set to True this procedure will create the value of type REG_EXPAND_SZ.
1826         It was only possible to create REG_SZ values before.
1827
1828 2007-12-13  Robert Dewar  <dewar@adacore.com>
1829
1830         * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
1831         g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
1832         namet-sp.adb, namet-sp.ads: New files.
1833
1834         * g-speche.adb: Use generic routine in g-spchge
1835
1836         * s-wchcnv.ads, s-wchcnv.adb: 
1837         Minor code cleanup (make formal type consistent with spec)
1838
1839         * namet.adb: Update comments.
1840
1841         * par-endh.adb (Evaluate_End_Entry): Use new
1842         Namet.Sp.Is_Bad_Spelling_Of function
1843
1844         * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
1845
1846         * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
1847         ancestor is an access type initialized with a box, set its type
1848         explicitly, for use in subsequent expansion.
1849         (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
1850         function
1851
1852 2007-12-13  Robert Dewar  <dewar@adacore.com>
1853
1854         * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
1855         access Vstring)
1856
1857 2007-12-13  Robert Dewar  <dewar@adacore.com>
1858
1859         * inline.adb (Back_End_Cannot_Inline): Use new flag
1860         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
1861
1862         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
1863         Has_Pragma_Inline_Always instead.
1864         of obsolete function Is_Always_Inlined
1865         (Build_Body_To_Inline): Same change
1866         (Cannot_Inline): Same change
1867         Do not give warning on exception raise in No_Return function
1868
1869         * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
1870         component has two inconsistent component clauses in the same record
1871         representation clause, favor the message that complains about
1872         duplication rather than inconsistency.
1873         Update comments.
1874         (Record_Representation_Clause): Do not warn on missing component
1875         clauses for inherited components of a type extension.
1876         (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
1877         an overloadable item if it is a pragma that can apply to multiple
1878         overloadable entities (e.g. Inline) because a pragma cannot be on
1879         more than one chain at a time.
1880         (Validate_Unchecked_Conversion): Add code to warn on unchecked
1881         conversion where one of the operands is Ada.Calendar.Time.
1882         (Analyze_Attribute_Definition_Clause): Fix typo in error message.
1883         For now, ignore Component_Size clause on VM targets, as done for
1884         pragma Pack.
1885
1886 2007-12-13  Emmanuel Briot  <briot@adacore.com>
1887             Vincent Celier  <celier@adacore.com>
1888
1889         * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
1890         string
1891         (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
1892         prj.ads
1893         (Hash): Move instantiation of System.HTable.Hash from spec to body
1894         (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
1895         systems, since we do not need to recompute the Name_Id for the canonical
1896         file name.
1897         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
1898         as a parameter. This parameter is in fact always "ada" in all calls, and
1899         we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
1900         while loading a project with 40000 files
1901
1902         * prj-attr.adb: Fix name of attribute Dependency_Driver
1903         Change the kind of indexing for attribute Root
1904
1905         * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
1906         variables already declared, in case constructions.
1907
1908         * prj-env.adb (Initialize): Reset Current_Source_Path_File and
1909         Current_Object_Path_File to No_Path.
1910
1911         * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
1912         ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
1913
1914         * prj-makr.adb: new parameter Current_Dir
1915
1916         * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
1917         Ada sources when language is not Ada.
1918         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
1919         (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
1920         (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
1921         (Locate_Directory): Always resolve links when computing Canonical_Path
1922         (Look_For_Sources): Make sure that Name_Buffer contains the file name
1923         in Source_Files before checking for the presence of a directory
1924         separator.
1925         Optimize calls to Name_Find when on case sensitive systems.
1926         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
1927         as a parameter.
1928         (Prj.Nmsc.Check): new parameter Current_Dir
1929         (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
1930         cannot be empty and the spec suffix cannot be the same as the body or
1931         separate suffix.
1932         (Get_Unit): When a file name can be of several unit kinds (spec, body or
1933         subunit), always consider the longest suffix.
1934         (Check_Configuration): Do not issue an error if there is no compiler
1935         for a language. Just issue a warning and ignore the sources for the
1936         language.
1937         (Check_Library_Attributes): Only check Library_Dir if Library_Name is
1938         not empty.
1939         (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
1940         (Unit_Exceptions): New hash table
1941         (Check_Naming_Schemes): Check if a file that could be a unit because of
1942         the naming scheme is not in fact a source because there is an exception
1943         for the unit.
1944         (Look_For_Sources): Put the unit exceptions in hash table
1945         Unit_Exceptions
1946         (Get_Unit_Exceptions): Give initial value No_Source to local variable
1947         Other_Part to avoid exception when code is compiled with validity
1948         checking.
1949         (Get_Sources_From_File): Check that there is no directory information
1950         in the file names.
1951         (Look_For_Sources): Check that there is no directory information in the
1952         list of file names in Source_Files.
1953         (Look_For_Sources): In multi-language mode, do not allow exception file
1954         names that are excluded.
1955         (Excluded_Sources_Htable): New hash table
1956         (Search_Directories.Check_File): New procedure to simplify
1957         Search_Directories.
1958         (Search_Directories): Do not consider excluded sources
1959         (Look_For_Sources): Populate Excluded_Sources_Htable before calling
1960         Search_Directories.
1961         (Get_Exceptions): Set component Lang_Kind of Source_Data
1962         (Get_Unit_Exceptions): Ditto
1963         (Search_Directories): Ditto
1964
1965         * prj-pars.adb: new parameter Current_Dir
1966
1967         * prj-part.ads, prj-part.adb: 
1968         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
1969         (Opt.Follow_Links_For_Dirs): New flag
1970         (Project_Path_Name_Of): Cache information returned by this routine as
1971         Locate_Regular_File is a costly routine. The code to output a log
1972         information and the effective call to Locate_Regular_File is now
1973         factorized into a routine (code clean-up).
1974         (Parse, Parse_Single_Project): new parameter Current_Dir
1975         When main project file cannot be found, indicate in the error
1976         message the project path that was used to do the search.
1977
1978         * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
1979         (Prj.Proc.Process*): new parameter Current_Dir
1980
1981         * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
1982
1983 2007-12-13  Bob Duff  <duff@adacore.com>
1984
1985         * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
1986         procedure to be called from the back end to check the
1987         No_Implicit_Dynamic_Code restriction.
1988
1989 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
1990
1991         * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
1992         Fixes another case where RTE_Available_Call was ignored instead of being
1993         taken into account.
1994         (Load_Fail): Ditto.
1995
1996         * rtsfind.ads: Add new entries.
1997
1998 2007-12-13  Robert Dewar  <dewar@adacore.com>
1999
2000         * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
2001         g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
2002
2003         * scn.adb: Implement BOM recognition
2004
2005 2007-12-13  Thomas Quinot  <quinot@adacore.com>
2006             Ed Schonberg  <schonberg@adacore.com>
2007
2008         * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
2009         subprogram body that acts as its own spec may not have a non-private
2010         WITH clause on a private sibling.
2011         (Build_Unit_Name): If the parent unit in the name in a with_clause on a
2012         child unit is a renaming, create an implicit with_clause on that
2013         parent, and not on the unit it renames, to prevent visibility errors
2014         in the current unit.
2015
2016 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
2017
2018         * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
2019         renaming declaration, use the Slocs of the formal parameters from the
2020         declaration of the formal subprogram when creating the formal parameter
2021         entities in the renaming declaration.
2022         (Analyze_Formal_Type_Declaration): Change the placement of the error
2023         message concerning illegal known discriminants. It is now posted on the
2024         type rather than on the first discriminant. This change ensures early
2025         error report.
2026         (Freeze_Subprogram_Body): If the generic subprogram is nested within
2027         the package body that contains the instance, do not generate an
2028         out-of-place freeze node for the enclosing package.
2029         (Collect_Previous_Instantiations): Ignore internal instantiations
2030         generated for formal packages.
2031         (Validate_Derived_Type_Instance): Add a check that when a formal
2032         derived type is Known_To_Have_Preelab_Init then the actual type must
2033         have preelaborable initialization, and issue an error when this
2034         condition is violated.
2035
2036 2007-12-13  Robert Dewar  <dewar@adacore.com>
2037
2038         * s-imenne.adb, s-imenne.ads: New files.
2039
2040         * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb, 
2041         s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb, 
2042         s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads, 
2043         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb, 
2044         s-imgwch.ads: New calling sequence for Image routines to avoid sec
2045         stack usage.
2046
2047 2007-12-13  Javier Miranda  <miranda@adacore.com>
2048             Ed Schonberg  <schonberg@adacore.com>
2049
2050         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
2051         generation of spurious error if parent is an interface type; caused
2052         because predefined primitive bodies will be generated later by
2053         Freeze_Record_Type.
2054         (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
2055         flag.
2056         (Derive_Subprograms): Handle derivations of predefined primitives
2057         after all the user-defined primitives to ensure that they are
2058         found in proper order in instantiations.
2059         (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
2060         of Related_Interface to Related_Type.
2061         (Record_Type_Declaration): Minor reordering of calls to decorate the
2062         Tag component because the entity must have set its Ekind attribute
2063         before setting its Is_Tag attribute.
2064         (Analyze_Subtype_Declaration): In the case of subtypes with
2065         Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
2066
2067 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
2068             Ed Schonberg  <schonberg@adacore.com>
2069
2070         * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
2071         statement to the list of contexts where a selected component with a
2072         concurrent tagged type prefix should yield a primitive operation.
2073         (Find_Primitive_Operation): Handle case of class-wide types.
2074         (Analyze_Overloaded_Selected_Component): If type of prefix is
2075         class-wide, use visible components of base type.
2076         (Resolve_Selected_Component): Ditto.
2077         (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
2078         formal of a generic subprogram. find candidate interpretations by
2079         scanning the list of generic formal declarations.:
2080         (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
2081         type from a limited_with_clause, and the full view is available, use it
2082         for subsequent semantic checks.
2083         (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
2084         (Find_Primitive_Operation): New function.
2085         (Analyze_Overloaded_Selected_Component): insert explicit dereference
2086         only once if several interpretations of the prefix yield an access type.
2087         (Try_Object_Operation): Code and comment cleanup.
2088         (Analyze_Selected_Component): Reorder local variables. Minot comment and
2089         code reformatting. When the type of the prefix is tagged concurrent, a
2090         correct interpretation might be available in the primitive and
2091         class-wide operations of the type.
2092
2093 2007-12-13  Robert Dewar  <dewar@adacore.com>
2094             Ed Schonberg  <schonberg@adacore.com>
2095
2096         * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
2097         renaming entry as subprogram using rename-as-body if subprogram spec
2098         frozen.
2099         (Use_One_Type): The clause is legal on an access type whose designated
2100         type has a limited view.
2101         (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
2102         (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
2103         (Analyze_Renamed_Primitive_Operation): new procedure to determine the
2104         operation denoted by a selected component.
2105         (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
2106         it can be an expression, possibly overloaded, that returns a task or
2107         an access to one.
2108
2109 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
2110             Gary Dismukes  <dismukes@adacore.com>
2111
2112         * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
2113         requeue statement is dispatching. Do not emit an error when the name is
2114         not an entry and the context is a dispatching select. Add code to
2115         perform subtype conformance between the formals of the current entry
2116         and those of the target interface primitive.
2117         (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
2118         Timed_Entry_Call): Analyze the triggering statement as the first step of
2119         the processing. If this is a dispatching select, postpone the analysis
2120         of all select statements until the Expander transforms the select. This
2121         approach avoids generating duplicate identifiers after the Expander has
2122         replicated some of the select statements. In case the Expander is
2123         disabled, perform regular analysis.
2124         (Check_Triggering_Statement): New routine.
2125         (Analyze_Requeue): Exclude any interpretations that are not entries when
2126         checking overloaded names in a requeue. Also test type conformance for
2127         matching interpretations rather than requiring subtype conformance at
2128         that point to conform with the RM's resolution rule for requeues.
2129
2130 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
2131
2132         * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
2133         inherited operation is a defaulted tag-indeterminate call, and there is
2134         a statically tagged actual, use the static tag as a controlling actual
2135         for the defaulted actual.
2136
2137 2007-12-13  Geert Bosch  <bosch@adacore.com>
2138
2139         * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
2140         context, so do not call Check_Non_Static_Context.
2141
2142 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
2143
2144         * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
2145         whether formal E is an entity which may have parameters.
2146
2147 2007-12-13  Bob Duff  <duff@adacore.com>
2148             Javier Miranda  <miranda@adacore.com>
2149             Robert Dewar  <dewar@adacore.com>
2150
2151         * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
2152         (Set_Convention): New procedure to set the Convention flag, and in
2153         addition make sure the Favor_Top_Level flag is kept in sync (all
2154         foreign-language conventions require Favor_Top_Level = True).
2155         (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
2156         to Related_Type.
2157         (Collect_Interfaces_Info): Minor update to handle the two secondary
2158         dispatch tables. Update occurrence of Related_Interface to Related_Type.
2159         (Generate_Parent_Ref): Add parameter to specify entity to check
2160         (Is_Preelaborable_Expression): Allow the name of a discriminant to
2161         initialize a component of a type with preelaborable initialization.
2162         This includes the case of a discriminal used in such a context.
2163         (Is_Dependent_Component_Of_Mutable_Object): Take into account the
2164         latest Ada 2005 rules about renaming and 'Access of
2165         discriminant-dependent components.
2166         (Check_Nested_Access): Add handling when there are no enclosing
2167         subprograms (e.g. case of a package body).
2168         (Find_Parameter_Type): Factor routine from several other compiler files.
2169         Remove routine from Find_Overridden_Synchronized_Primitive.
2170
2171 2007-12-13  Thomas Quinot  <quinot@adacore.com>
2172
2173         * sinput.adb (Get_Source_File_Index): Add assertion to guard against
2174         an invalid access to an uninitialized slot in the
2175         Source_File_Index_Table.
2176
2177 2007-12-13  Thomas Quinot  <quinot@adacore.com>
2178
2179         * sinput-l.adb (Load_File): Disable style checks when preprocessing.
2180
2181 2007-12-13  Bob Duff  <duff@adacore.com>
2182
2183         * s-soflin.ads: Apply new pragma Favor_Top_Level to all
2184         access-to-subprogram types in this package.
2185
2186 2007-12-13  Olivier Hainque  <hainque@adacore.com>
2187
2188         * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
2189         with Stack_Grows_Down in System.Parameters. Rename Array_Address into
2190         Stack_Overlay_Address and document that we are using an internal
2191         abstraction.
2192         (Byte_Size, Unsigned_32_Size): Remove, now useless.
2193         (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
2194         consistently throughout the various implementation pieces.
2195
2196         * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
2197         overlay we are using to fill the stack area with patterns.
2198         (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
2199         (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
2200         (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
2201
2202 2007-12-13  Robert Dewar  <dewar@adacore.com>
2203
2204         * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
2205
2206 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
2207
2208         * s-tassta.adb: 
2209         (Create_Task): Take into account tasks created by foreign threads.
2210         Code clean up: use constants instead of hard coded values.
2211
2212 2007-12-13  Robert Dewar  <dewar@adacore.com>
2213
2214         * styleg.adb (Check_Comment): More liberal rules for comment placement
2215
2216 2007-12-13  Olivier Hainque  <hainque@adacore.com>
2217
2218         * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
2219         of Procedure Value instead of Frame Pointer as the invocation
2220         identifier associated with the instruction pointer in each traceback
2221         entry.
2222
2223         * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
2224         TB_Entry_For): Revert back to use of Procedure Value instead of Frame
2225         Pointer as the invocation identifier passed to tbk$symbolize.
2226
2227         * s-traent-vms.ads, s-traent-vms.adb
2228         (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
2229         Procedure Value instead of Frame Pointer as the invocation identifier
2230         passed to tbk$symbolize.
2231
2232 2007-12-13  Robert Dewar  <dewar@adacore.com>
2233
2234         * tbuild.ads, tbuild.adb: 
2235         Fix location of flag for unrecognized pragma message
2236
2237 2007-12-13  Robert Dewar  <dewar@adacore.com>
2238
2239         * treepr.ads, treepr.adb: (pl): implement use of positive value
2240         shorthands
2241
2242 2007-12-13  Robert Dewar  <dewar@adacore.com>
2243
2244         * xeinfo.adb: Remove warnings
2245         * xnmake.adb: Remove warnings
2246         * xsinfo.adb: Remove warnings
2247         * xtreeprs.adb: Remove warnings
2248         * xsnames.adb: Remove warnings
2249
2250         * a-ngcoar.adb: Fix typo.
2251         * s-interr.adb: Minor reformatting
2252         * env.c: Minor reformatting.
2253         * g-bytswa.adb: Minor reformatting.
2254         * g-rannum.ads: Minor documentation improvements
2255         * s-tasinf-mingw.adb: Minor header fix
2256         * a-clrefi.adb: Minor reformatting
2257         * g-sttsne.ads: Minor documentation improvement
2258         * g-sttsne-locking.ads: Minor documentation improvement
2259         * g-soliop-solaris.ads: Minor documentation improvement
2260         * g-soliop-mingw.ads: Minor documentation improvement
2261         * g-soliop.ads: Minor documentation improvement
2262         * exp_aggr.ads: Minor reformatting
2263         * debug.adb: Add documentation for the gprbuild debug flags
2264         * exp_ch2.adb: Use Nkind_In to simplify code throughout
2265         * exp_pakd.adb: Minor reformatting
2266
2267         * g-altive.ads, g-alleve.adb: Remove assertions.
2268         Add comment about minor differences between targets regarding
2269         floating-point operations.
2270
2271         * g-thread.adb: Remove pragma unreferenced.
2272         * lib.ads: Minor reformatting
2273         * par-ch9.adb: Minor reformatting of error messages
2274         * sem_case.adb: Minor reformatting
2275         * s-fileio.adb: Minor reformattinng
2276         * s-vmexta.ads: Minor typo
2277         * vxaddr2line.adb: 
2278         Take into account 'Success' value as per new GNAT warning.
2279
2280 2007-12-13  Vincent Celier  <celier@adacore.com>
2281
2282         * a-direct.adb (Create_Path): Always take '/' as a directory separator,
2283         even on Windows
2284
2285 2007-12-13  Robert Dewar  <dewar@adacore.com>
2286             Bob Duff  <duff@adacore.com>
2287
2288         * gnat_ugn.texi: Dcoument new rules for style check comment alignment
2289         Document that suffixes may be terminations of each others
2290         Add doc for -gnatw.a and -gnatw.A
2291         Document gnatbind -Wx switch
2292         Document BOM recognition
2293         Document pragma Implemented_By_Entry.
2294         Document new units.
2295
2296         * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
2297         Add doc for pragma Unreferenced suppressing no entities referenced msg
2298         Add documentation of GNAT.Directory_Operations.Iteration
2299         Add documentation of GNAT.Random_Numbers
2300         Add documentation for pragma Shared.
2301         Correct documentation for Bit_Order
2302         Add documentation for the Pool_Address attribute.
2303         Fix and improve documentation of pragma machine_attribute.
2304         New pragma Fast_Math
2305         Document BOM recognition
2306
2307         * vms_data.ads: Add entries for -gnatw.a -gnatw.A
2308         Add /Wide_Character_Encoding for binder
2309         Add qualifier for the new gnatpp option --no-separate-loop-then
2310
2311 2007-12-13  Matthew Heaney  <heaney@adacore.com>
2312
2313         * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
2314         which generic formal operations are called for each operation.
2315
2316 2007-12-13  Olivier Hainque  <hainque@adacore.com>
2317
2318         * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
2319         (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
2320
2321 2007-12-13  Emmanuel Briot  <briot@adacore.com>
2322
2323         * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
2324         Reference_Dir unless we actually need it.
2325
2326 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
2327             Tristan Gingold  <gingold@adacore.com>
2328
2329         * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
2330
2331         * s-osprim-vms.adb,
2332         a-calend-vms.adb: Remove pragma warning off and add pragma
2333         unreferenced.
2334
2335 2007-12-13  Robert Dewar  <dewar@adacore.com>
2336
2337         * impunit.adb: Add entries for missing units
2338
2339         * Makefile.rtl: Add new run-time units.
2340
2341         * Make-lang.in:  Update dependencies.
2342
2343 2007-12-13  Bob Duff  <duff@adacore.com>
2344
2345         * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
2346         types, set Can_Use_Internal_Rep appropriately, based on
2347         Always_Compatible_Rep_On_Target.
2348
2349 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
2350             Arnaud Charlet  <charlet@adacore.com>
2351
2352         * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
2353         it to the front end and setting the aamp_target environment variable
2354         to the switch's argument to ensure that gnaampbind and gnaamplink will
2355         take the specified library into account.
2356         (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
2357         target, since the CIL compiler supports an "object" file (.il files).
2358
2359 2007-12-13  Vincent Celier  <celier@adacore.com>
2360
2361         * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
2362         (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
2363
2364 2007-12-13  Geert Bosch  <bosch@adacore.com>
2365
2366         * s-parame-vxworks.adb: 
2367         Update comments to reflect usage of this package by Nucleus.
2368
2369 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
2370
2371         * i-vxwork.ads: Kill new warning on Convention C, since changing the
2372         spec would break code.
2373
2374         * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
2375
2376         * system-vxworks-alpha.ads: Removed.
2377
2378 2007-12-10  Eric Botcazou  <ebotcazou@adacore.com>
2379
2380         * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
2381
2382 2007-12-09  Samuel Tardieu  <sam@rfc1149.net>
2383
2384         PR ada/34366
2385         * sem_ch3.adb (Designates_T): New function.
2386         (Mentions_T): Factor reusable part of the logic into Designates_T.
2387         Consider non-access parameters and access and non-access result.
2388         (Check_Anonymous_Access_Components): Set ekind of anonymous access to
2389         E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
2390
2391         * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
2392
2393 2007-12-07  Ludovic Brenta  <ludovic@ludovic-brenta.org>
2394
2395         PR ada/34361
2396         * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
2397         the new implementation of target-specific calls.
2398
2399 2007-12-07  Olivier Hainque  <hainque@adacore.com>
2400
2401         * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
2402         the designated full view, only follow a second level Full_View link
2403         for Non_Limited_Views of from_limited_with references.
2404         
2405 2007-12-07  Samuel Tardieu  <sam@rfc1149.net>
2406
2407         PR ada/15805
2408         * sem_ch6.adb (Process_Formals): Prevent an access type formal
2409         to be initialized with an access to constant object.
2410
2411         * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
2412         when an access to constant is used to initialize an access
2413         value.
2414
2415         PR ada/21346
2416         * a-direct.adb (Compose): Containing_Directory can be an empty string.
2417
2418 2007-12-07  Olivier Hainque  <hainque@adacore.com>
2419
2420         PR ada/34173
2421         * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
2422         the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
2423         this is from an alignment clause on the GNAT entity.
2424         * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
2425         to distinguish the case where we set it from the type's alignment.
2426         When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
2427         whether this alignment was set from an explicit alignment clause.
2428
2429 2007-12-06  Eric Botcazou  <ebotcazou@adacore.com>
2430
2431         * decl.c (make_packable_type): Revert last change.
2432         (gnat_to_gnu_field): Avoid setting size and position multiple times.
2433         * utils.c (finish_record_type): Retrieve the real name of the type.
2434
2435 2007-12-05  Eric Botcazou  <ebotcazou@adacore.com>
2436
2437         * trans.c (lvalue_required_p): Take base node directly instead
2438         of its parent.  Rename second parameter to 'gnu_type'.
2439         <N_Indexed_Component>: Return 0 if the node isn't the prefix.
2440         <N_Slice>: Likewise.
2441         (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
2442         Adjust calls to lvalue_required_p.
2443
2444 2007-12-05  Samuel Tardieu  <sam@rfc1149.net>
2445
2446         PR ada/21489
2447         * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
2448         parameters of an entry call.
2449
2450 2007-12-03  Robert Dewar  <dewar@adacore.com>
2451             Samuel Tardieu  <sam@rfc1149.net>
2452
2453         PR ada/34287
2454         * sem_util.adb (Safe_To_Capture_Value): Do not capture values
2455         of variables declared in a library-level package.
2456     
2457 2007-12-02  Samuel Tardieu  <sam@rfc1149.net>
2458
2459         * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
2460         of Empty_String'Unchecked_Access.
2461
2462         * Makefile.in: Add support for sh4-linux.
2463
2464         * system-linux-sh4.ads: New file.
2465
2466 2007-12-01  Kostik Belousov  <kostikbel@ukr.net>
2467
2468         PR ada/33722
2469         * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
2470         and its argument must not be free()ed.
2471
2472 2007-11-29  Eric Botcazou  <ebotcazou@adacore.com>
2473
2474         * decl.c (make_packable_type): Retrieve the real name of the type.
2475         (maybe_pad_type): Simplify similar code.
2476
2477 2007-11-28  Samuel Tardieu  <sam@rfc1149.net>
2478
2479         PR ada/15804
2480         * par-ch3.adb (P_Variant_Part): Signal an error when anything other
2481         than an identifier is used after "case" in a variant_part.
2482
2483         PR ada/17318
2484         * par-ch4.adb (Is_Parameterless_Attribute): New map.
2485         (P_Name, Scan_Apostrophe block): Parse left parenthesis following
2486         attribute name or not depending on the new map.
2487
2488         * sem-attr.adb (Analyze_Attribute): Parameterless attributes
2489         returning a string or a type will not be called with improper
2490         arguments.
2491
2492         * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
2493
2494         * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
2495
2496         PR ada/32792
2497         * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
2498         Signal an error when attribute argument is a fixed-point value of
2499         an unknown type.
2500
2501         PR ada/22559
2502         * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
2503         a derived ordinary fixed point type.
2504
2505         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
2506         RM_Size when a Small clause is found.
2507
2508 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
2509
2510         PR 34081/C++
2511         * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
2512         Pass 'false' for the new allocate_struct_function parameter.
2513         * utils.c (build_function_stub): Likewise.
2514
2515 2007-11-25  Richard Guenther  <rguenther@suse.de>
2516
2517         * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
2518         (gnat_poplevel): Likewise.
2519
2520 2007-11-25  Eric Botcazou  <ebotcazou@adacore.com>
2521
2522         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
2523         strict alignment, no alignment clause and a known static size, cap
2524         the type alignment to the greatest power of 2 factor of the size.
2525         (gnat_to_gnu_field): If the field has a component clause, is aliased
2526         or of a type with strict alignment, require that its size be equal to
2527         that of the type.
2528         (validate_size): Use the type size as the minimum size for a type with
2529         strict alignment.
2530
2531 2007-11-23  Samuel Tardieu  <sam@rfc1149.net>
2532
2533         * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
2534         s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
2535         s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
2536         Use 'Access instead of 'Unchecked_Access in second and third
2537         arguments of pthread_sigmask.
2538
2539 2007-11-23  Eric Botcazou  <ebotcazou@adacore.com>
2540
2541         * decl.c (ceil_alignment): New function.
2542         (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
2543         (make_packable_type): Likewise.
2544
2545 2007-11-22  Olivier Hainque  <hainque@adacore.com>
2546
2547         * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
2548         to fit in 80 columns.
2549
2550 2007-11-21  Aurelien Jarno  <aurelien@aurel32.net>
2551
2552         * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
2553         * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
2554
2555 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
2556
2557         PR ada/34098
2558         * misc.c (gnat_adjust_rli): Delete.
2559         (gnat_init): Do not initialize the translation code here.
2560         Do not call set_lang_adjust_rli.
2561         * trans.c (init_code_table): Make static.
2562         (gnat_init_stmt_group): Delete.
2563         (gigi): Initialize the translation code entirely here.
2564         Emit debug info for the common types here instead of...
2565         * utils.c (gnat_init_decl_processing): ...here.
2566         * gigi.h (init_code_table): Delete.
2567         (gnat_init_stmt_group): Likewise.
2568
2569 2007-11-16  Olivier Hainque  <hainque@adacore.com>
2570
2571         * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
2572         retrieving an allocator return value from a super-aligned address from
2573         here to ...
2574         * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
2575         expect a super-aligned address for a fat or thin pointer.
2576         
2577 2007-11-14  Eric Botcazou  <ebotcazou@adacore.com>
2578
2579         * trans.c (call_to_gnu): Always set the source location on the call
2580         expression.  If the function returns-by-target, also set it on the
2581         address expression.
2582
2583 2007-11-14  Samuel Tardieu  <sam@rfc1149.net>
2584
2585         * adaint.c, init.c, initialize.c, link.c: Remove system-specific
2586         sections of non-supported Interix target.
2587
2588         * s-osinte-interix.ads: Removed.
2589
2590         * i-cstrin.ads (chars_ptr): Make it a C convention type.
2591
2592 2007-11-13  Samuel Tardieu  <sam@rfc1149.net>
2593
2594         * a-tasatt.adb: Add a comment at the beginning of the package
2595         explaining why in general 'Unchecked_Access must be used instead
2596         of 'Access.
2597
2598         * sem_prag.adb (Process_Convention): Move the test for the
2599         entity on which the Convention pragma applies down to also
2600         forbid pragma Convention on enumeration literals reached
2601         through renamings.
2602
2603 2007-11-10  Samuel Tardieu  <sam@rfc1149.net>
2604
2605         * a-tasatt.adb: Revert previous change for this file as it will
2606         generate an error when this package is instantiated from a
2607         local context.
2608
2609 2007-11-07  Samuel Tardieu  <sam@rfc1149.net>
2610
2611         * a-tasatt.adb: Type Wrapper should be declared in comment instead
2612         of already declared type Node_Access.
2613         Use 'Access instead of 'Unchecked_Access when applicable. Local
2614         lifetime is the one of the package.
2615         (Set_Value): W is allocated on the heap.
2616
2617         * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
2618         applicable.
2619         (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
2620         access type.
2621         (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
2622         access type.
2623
2624         * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
2625         applicable.
2626         (elaboration code): Timer_Queue lifetime is the one of the
2627         package.
2628
2629         * tracebak.c (i386 alternative): Remove useless comparaison
2630         which is always false; LOWEST_ADDRESS is 0 and is never greater
2631         than an unsigned integer.
2632
2633         * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
2634         embedded check for "Ada_Version >= Ada_05".
2635
2636 2007-11-07  Olivier Hainque  <hainque@adacore.com>
2637
2638         * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
2639         craft and expand comment.
2640
2641 2007-11-01  Eric Botcazou  <ebotcazou@adacore.com>
2642
2643         * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
2644
2645 2007-10-23  Eric Botcazou  <ebotcazou@adacore.com>
2646
2647         * misc.c (gnat_handle_option): Replace call to abort with
2648         call to gcc_unreachable.
2649         (gnat_init): Likewise.
2650         (gnat_expand_expr): Likewise.
2651         (fp_prec_to_size): Likewise.
2652         (fp_size_to_prec): Likewise.
2653
2654 2007-10-23  Richard Guenther  <rguenther@suse.de>
2655
2656         PR bootstrap/33608
2657         * tracebak.c: #undef abort after including system.h.
2658
2659 2007-10-20  Danny Smith  <dannysmith@users.sourceforge.net>
2660
2661         * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
2662         s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
2663         for win32 targets.
2664         (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
2665
2666 2007-10-15  Eric Botcazou  <ebotcazou@adacore.com>
2667
2668         * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
2669         Set the protection status of the guard page based on the value of On.
2670
2671         * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
2672
2673         * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
2674         (Exit_Task): Pass False to Hide_Yellow_Zone.
2675
2676 2007-10-15  Robert Dewar  <dewar@adacore.com>
2677
2678         * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
2679         s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
2680         a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb, 
2681         checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb, 
2682         freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb, 
2683         gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb, 
2684         mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb, 
2685         prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb, 
2686         sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb, 
2687         s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
2688         uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb, 
2689         a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb, 
2690         a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb, 
2691         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb, 
2692         a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb, 
2693         a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
2694         Minor reformatting.
2695         Add Unreferenced and Warnings (Off) pragmas for cases of
2696         variables modified calls where they are IN OUT or OUT parameters and
2697         the resulting values are not subsequently referenced. In a few cases,
2698         we also remove redundant code found by the new warnings.
2699
2700         * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads, 
2701         sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
2702         sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
2703         sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
2704         warning controlled by -gnatw.o that warns on cases of out parameter
2705         values being ignored.
2706
2707 2007-10-15  Geert Bosch  <bosch@adacore.com>
2708
2709         * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
2710
2711         * expect.c: Initial port to arm-mentor-nucleus.
2712         Use kill for __gnat_kill() on VMS.
2713
2714 2007-10-15  Emmanuel Briot  <briot@adacore.com>
2715
2716         * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
2717         value.
2718         (Xref_Record): Change type for Line, since in the case of a reference to
2719         a predefined entity (as happens for array index types), the line is set
2720         to 0.
2721         Add support for parsing multiple array index types info, or
2722         multiple inherited interfaces info. This information cannot be stored
2723         in Xref_Entity_Record, which only supports a single instance of Tref_*,
2724         and is therefore stored in the list of references instead. It has a
2725         special treatement later on in tools that use this information.
2726
2727 2007-10-15  Tristan Gingold  <gingold@adacore.com>
2728
2729         * debug.adb: Document use of -gnatd.a and -gnatd.I
2730
2731         * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
2732
2733 2007-10-15  Javier Miranda  <miranda@adacore.com>
2734
2735         * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
2736         Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
2737         care of access to class-wide interface types plus removal of bizarre
2738         conversion of tagged object to access type (reported by Gary
2739         Dismukes). After this patch there is no need to perform any
2740         additional management on these nodes in Expand_Interface_Actuals.
2741
2742         * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
2743         that handles use of 'Access and 'Unchecked_Access applied to
2744         actuals covering interface types. Such code is now
2745         centralized in Expand_N_Attribute_Reference.
2746
2747 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
2748
2749         * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
2750         of tagged types whose ultimate ancestor is a CPP type.
2751         (Freeze_Array_Type): For a packed array type, generate an initialization
2752         procedure if the type is public, to handle properly a client that
2753         specifies Normalize_Scalars.
2754
2755 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
2756
2757         * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
2758         inside a generic body, retrieve the full view of the entry family
2759         discrete subtype if available.
2760
2761 2007-10-15  Thomas Quinot  <quinot@adacore.com>
2762
2763         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
2764         attempt to generate stubs for hidden primitive operations.
2765
2766 2007-10-15  Vincent Celier  <celier@adacore.com>
2767
2768         * mlib-tgt-specific.adb (Support_For_Libraries): New function,
2769         returning None, used when there is no platform specific body for
2770         MLib.Tgt.Specific.
2771
2772 2007-10-15  Bob Duff  <duff@adacore.com>
2773
2774         * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
2775         (passing'Unrestricted_Access of nested subprograms to Sort) with use of
2776         the generic Heap_Sort_G, in order to avoid trampolines.
2777
2778 2007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
2779             Jose Ruiz  <ruiz@adacore.com>
2780
2781         * vx_stack_info.c: New file.
2782
2783         * i-forbla-unimplemented.ads: New file.
2784
2785         * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
2786         for unsupported configurations; use it on VMS targets instead of the
2787         real one.
2788         (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
2789         vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
2790         used by VxWorks targets to have access to task-specific data and be
2791         able to extract the stack boundaries for stack checking.
2792         Use system-vms-ia64.ads on ivms.
2793
2794         * Make-lang.in: Update dependencies.
2795
2796         * sysdep.c (__gnat_get_stack_info): Move to a standalone file
2797         (vx_stack_info.c).
2798
2799 2007-10-15  Vincent Celier  <celier@adacore.com>
2800
2801         * snames.adb, snames.ads: Add new standard name runtime_library_dir
2802
2803         * prj.ads (Language_Config): Add new component Runtime_Library_Dir
2804
2805         * prj-attr.adb: Add project level attribute Runtime_Library_Dir
2806
2807         * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
2808         the source is unknown.
2809
2810         * prj-ext.adb: Spelling error fix
2811
2812         * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
2813         95 reserved word in its name.
2814         (Process_Project_Level_Array_Attributes): Process new attribute
2815         Runtime_Library_Dir.
2816
2817         * prj-part.adb (Parse_Single_Project): Do not check the name of the
2818         config project against the user project names.
2819
2820         * prj-proc.adb (Expression): In multi-language mode, indexes that do
2821         not include a dot are always case insensitive.
2822         (Process_Declarative_Items): Ditto
2823         (Process_Project_Tree_Phase_1): Set Success to False in case an error is
2824         detected.
2825
2826         * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
2827         True, compare both indexes in lower case.
2828
2829 2007-10-15  Robert Dewar  <dewar@adacore.com>
2830
2831         * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
2832
2833 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
2834
2835         * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
2836         association for an access component, add an association with null as
2837         the expression. Remove testing for array subtypes and the setting in
2838         that case of Ctyp to the array component type, which prevented proper
2839         inclusion of an association for null-initialized arrays. Collapse
2840         condition that tests for array subtypes into just a test of
2841         Is_Partially_Initialized_Type (which already covers arrays anyway).
2842
2843 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
2844
2845         * sem_ch12.adb: Minor code reformatting.
2846         (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
2847         find the parent package which may have been hidden by local
2848         declarations.
2849
2850 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
2851
2852         * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
2853         flag of derived concurrent types, taking into account the flag setting
2854         on the parent subtype and any new set of discriminants.
2855
2856 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
2857
2858         * sem_ch4.adb: Minor code and comment reformatting.
2859         (Analyze_Allocator): When the designated type of an unconstrained
2860         allocator is a record with unknown discriminants or an array with
2861         unknown range bounds, emit a detailed error message depending on the
2862         compilation mode and whether the designated type is limited.
2863
2864 2007-10-15  Tristan Gingold  <gingold@adacore.com>
2865
2866         * system-vms-ia64.ads: New file.
2867
2868         * system-vms_64.ads: Minor comment fix.
2869
2870 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
2871
2872         * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
2873         body generated for a function with a controlling result that is a null
2874         extension, discard the generated body in favor of the current explicit
2875         one.
2876
2877 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
2878
2879         * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
2880         examining its original form, to handle properly operator calls that
2881         have been rewritten.
2882
2883 2007-10-15  Olivier Hainque  <hainque@adacore.com>
2884
2885         * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
2886         instead of a procedure value in each traceback entry.
2887
2888         * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
2889         instead of procedure value to TBK$SYMBOLIZE.
2890
2891         * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
2892         field.
2893         (TB_Entry_For): Account for the PV/FP renaming.
2894
2895         * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
2896         add comment.
2897         (Null_TB_Entry): Account for change of component name.
2898         (PV_For): Rename as FP_For.
2899
2900 2007-10-15  Tristan Gingold  <gingold@adacore.com>
2901
2902         * trans.c (gnat_to_gnu): Remove the padding structure more often.
2903         This optimize assignment to over-aligned record.
2904
2905 2007-10-15  Emmanuel Briot  <briot@adacore.com>
2906
2907         * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
2908         interfaces.
2909
2910         * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
2911         type, for dispatching calls.
2912
2913 2007-10-15  Vincent Celier  <celier@adacore.com>
2914             Robert Dewar  <dewar@adacore.com>
2915
2916         * gnat_ugn.texi: Add documentation for switches --version and --help
2917         for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
2918         gnatxref, gnatfind, gnatls, and gnatclean.
2919         Document -gnatw.o.
2920         Mention attribute Excluded_Source_Dirs
2921         Replace obsolescent attribute Locally_Removed_Files with attribute
2922         Excluded_Source_Files.
2923         Improve documentation of -u (gnatbind)
2924         Document how to do reliable stack checking for the environmental task
2925         on iVMS.
2926
2927         * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
2928         Document attribute Excluded_Source_Files and indicate that attribute
2929         Locally_Removed_Files is obsolescent.
2930
2931 2007-10-15  Thomas Quinot  <quinot@adacore.com>
2932
2933         * g-soccon-vms.ads: Fix value of MSG_WAITALL.
2934
2935         * gen-soccon.c: 
2936         Update documentation to note that OpenVMS 8.3 or later must be used
2937         to generate g-soccon-vms.ads.
2938
2939         * atree.adb: Add ??? comment
2940
2941         * exp_util.adb: Minor reformatting.
2942         Add ??? comment in Kill_Dead_Code.
2943
2944 2007-10-15  Robert Dewar  <dewar@adacore.com>
2945
2946         * errout.ads: Comment clarification
2947
2948         * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
2949         (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
2950
2951         * lib.ads: Comment update
2952
2953         * init.c: Minor reformatting.
2954
2955         * sem_attr.adb: Minor formatting
2956
2957         * osint-b.ads: Minor reformatting
2958
2959         * sem_ch9.adb: Implement -gnatd.I switch
2960
2961         * g-comlin.adb: (Start): Fix handling of empty command line.
2962
2963         * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
2964         even when -rules follows the -cargs section.
2965
2966 2007-10-08  Ollie Wild  <aaw@google.com>
2967
2968         * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
2969         gnat_return_tree.
2970         (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
2971         gnat_return_tree.
2972         (gnat_eh_runtime_type): Removed.
2973         (gnat_return_tree): New function.
2974
2975 2007-10-08  Ben Elliston  <bje@au.ibm.com>
2976
2977         PR ada/33454
2978         Revert:
2979         2007-08-31  Ben Elliston  <bje@au.ibm.com>
2980
2981         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
2982         when compiling for powerpc64-*-linux.
2983         * system-linux-ppc64.ads: New file.
2984
2985 2007-09-27  Eric Botcazou  <ebotcazou@adacore.com>
2986
2987         Mapped location support
2988         * back_end.adb (Call_Back_End): Pass information about source
2989         files instead of units to gigi.
2990         * gigi.h (struct File_Info_Type): New.
2991         (gigi): Rename and change type of number_units parameter, change
2992         type of file_info_ptr parameter.
2993         * trans.c (number_files): New global variable.
2994         (gigi): Rename and change type of number_units parameter, change
2995         type of file_info_ptr parameter.
2996         If mapped location support is enabled, create the isomorphic mapping
2997         between source files and line maps.
2998         (Sloc_to_locus): If mapped location support is enabled, translate
2999         source location into mapped location.
3000         (annotate_with_node): Rename into set_expr_location_from_node.
3001         Call set_expr_location instead of annotate_with_locus.
3002         (Pragma_to_gnu): Adjust for above change.
3003         (Loop_Statement_to_gnu): Likewise.
3004         (call_to_gnu): Likewise.
3005         (Handled_Sequence_Of_Statements_to_gnu): Likewise.
3006         (gnat_to_gnu): Likewise.
3007         (add_stmt_with_node): Likewise.
3008         (add_cleanup): Likewise.
3009         * utils.c (gnat_init_decl_processing): Do not set input_line.
3010
3011 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
3012
3013         * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
3014         (Applicable_Use): Emit a warning when a package tries to use itself.
3015         (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
3016         is already in use or the package where it is declared is in use or is
3017         declared in the current package.
3018         (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
3019
3020         * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
3021         s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
3022         s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
3023
3024 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
3025
3026         * a-calend-vms.adb, a-calend.adb: 
3027         Add a section on leap seconds control along with two entities used to
3028         enable and disable leap seconds support. The array Leap_Second_Times is
3029         now constant and contains hard time values pre-generated. Remove
3030         all elaboration code used to populate the table of leap seconds.
3031
3032         * bindgen.adb: 
3033         Add entity Leap_Seconds_Support to the list of global run-time variables
3034         along with a comment on its usage and values.
3035         (Gen_Adainit_Ada): Add code to generate the declaration and import of
3036         Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
3037         or one (enabled) depending on the presence of binder switch "-y".
3038         (Gen_Adainit_C): Add code to generate the declaration of external int
3039         __gl_leap_seconds_support. Set is value to zero (disabled) or one
3040         (enabled) depending on the presence of binder switch "-y".
3041
3042         * init.c: Add __gl_leap_seconds_support to the list of global values
3043         computed by the binder.
3044
3045 2007-09-26  Jerome Guitton  <guitton@adacore.com>
3046
3047         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
3048         s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
3049          s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
3050         s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
3051
3052         * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
3053
3054         * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
3055         function which can be called by the debugger to interrupt the tasks of
3056         an Ada application asynchronously, as needed on VxWorks.
3057         (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
3058
3059         * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
3060         renamed from Stop_All_Tasks. Update comments.
3061         (Stop_All_tasks): New function declaration.
3062
3063 2007-09-26  Olivier Hainque  <hainque@adacore.com>
3064
3065         * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
3066         #include <utime.h> and #define GCC_RESOURCE_H before
3067         #include <sys/wait.h>.
3068         Add more protections in __gnat_translate_vms.
3069
3070         * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
3071         #include <sys/wait.h>.
3072
3073 2007-09-26  Thomas Quinot  <quinot@adacore.com>
3074             Sergey Rybin  <rybin@adacore.com>
3075
3076         * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
3077
3078         * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
3079         where it belongs.
3080
3081         * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
3082
3083         * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
3084         where it belongs.
3085
3086         * sem_dist.ads: Minor comment fix
3087
3088         * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
3089
3090 2007-09-26  Javier Miranda  <miranda@adacore.com>
3091             Eric Botcazou  <ebotcazou@adacore.com>
3092
3093         * a-tags.adb: 
3094         (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
3095          indirection added to the HT_Link component of the TSD. This is required
3096          to statically allocate the TSD.
3097
3098         * a-tags.ads: 
3099         Minor reordering of the declarations in the private part. Required to
3100         add a level of indirection to the contents of the TSD component HT_Link.
3101         This is required to statically allocate the TSD.
3102
3103         * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
3104         Is_Statically_Allocated set from constant objects.
3105         Do not make exported constants created by the compiler volatile.
3106         (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
3107         as read-only.
3108
3109         * trans.c (Identifier_to_gnu): For constants, unshare initializers
3110         before returning them.
3111
3112         * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
3113         public part of the package.
3114         (Make_DT): Move HT_Link component out of the TSD record. For this
3115         purpose Make_DT now declares a separate object that stores the
3116         HT_Link value, and initializes the TSD component with the address
3117         of this new object. The addition of this level of indirection is
3118         required to statically allocate the TSD because the TSD cannot
3119         have variable components.
3120         (Expand_Interface_Conversion): Improve the expanded code.
3121         (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
3122
3123         * sem_disp.adb (Check_Dispatching_Operation): In case of a body
3124         declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
3125         if we are building static dispatch tables then we must not generate
3126         extra code to register the primitive because the dispatch table will
3127         be built at the end of the library package; otherwise we notify that
3128         we cannot build the static dispatch table.
3129
3130 2007-09-26  Robert Dewar  <dewar@adacore.com>
3131
3132         * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
3133         overlays.
3134
3135         * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
3136         (Analyze_Record_Representation_Clause): Suppress junk warning for
3137         missing component clause.
3138         (Analyze_Attribute_Definition_Clause, case Address): Apply the special
3139         tests for controlled type overlay to composites with controlled
3140         components.
3141         (Analyze_Record_Representation_Clause): Add reference for component name
3142
3143 2007-09-26  Javier Miranda  <miranda@adacore.com>
3144             Gary Dismukes  <dismukes@adacore.com>
3145
3146         * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
3147         for thunks associated with interface types.
3148
3149         * einfo.ads: Improve documentatation of Is_Internal
3150         (Is_Thunk): New attribute applicable to subprograms. True for thunks
3151         associated with interface types.
3152         Extensive comment fixes regarding flags that appear in all entities. The
3153         documentation is now consistent for all such flags (there were a number
3154         of errors in the documentation in this regard).
3155
3156         * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
3157
3158         * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
3159         of these procedures are passed a function call that already has
3160         build-in-place actuals (testing new flag
3161         Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
3162         the case where processing continues.
3163         (Expand_Call): If the call is generated from a thunk body then we
3164         propagate the extra actuals associated with the accessibility
3165         level of the access type actuals.
3166
3167         * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
3168         of each extra formal of a protected operation to reference the
3169         corresponding extra formal of the subprogram denoted by the
3170         operation's Protected_Body_Subprogram.
3171         
3172         * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
3173         N_Function_Call nodes.
3174
3175 2007-09-26  Robert Dewar  <dewar@adacore.com>
3176
3177         * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
3178
3179         * debug.adb: Add d.s flag.
3180
3181 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
3182
3183         * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
3184         debug variable so that it won't be initialized when pragma
3185         Initialize_Scalars is in effect.
3186
3187 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
3188
3189         * freeze.adb (Freeze_Entity): Remove check for preelaborable
3190         initialization of a full view. This is moved to
3191         Analyze_Package_Specification.
3192
3193         * sem_ch7.adb (Analyze_Package_Specification): Add check for
3194         preelaborable initialization of a full view in entity loop.
3195         (Uninstall_Declarations): If entity is a use-visible compilation unit,
3196         its child units are use-visible only if they are visible child units.
3197
3198         * sem_util.adb (Is_Preelaborable_Expression): New function to determine
3199         whether an expression can be used within a type declaration that
3200         requires preelaborable init.
3201         (Check_Components): Replace inline code that does partial checking for
3202         preelaborable default expressions with call to
3203         Is_Preelaborable_Expression.
3204         (Has_Preelaborable_Initialization): In the case of a generic actual
3205         subtype, (that is, Is_Generic_Actual is True), return the result of
3206         applying Has_Preelaborable_Initialization to the generic actual's base
3207         type.
3208
3209 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
3210
3211         * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
3212         call to Jan_1_Day _Of_Week to optimize its performance.
3213         (Is_Leap): Move the routine to the scope of Week_In_Year.
3214         (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
3215         weekday on which January 1 falls of Year - 1 and Year + 1. This function
3216         avoids calling Time_Of and Split, thus making it more efficent.
3217         (Week_In_Year): Reimplemented in oder to follow ISO 8601.
3218
3219         * g-calend.ads (Week_In_Year): Change comment to reflect new
3220         implementation.
3221
3222 2007-09-26  Emmanuel Briot  <briot@adacore.com>
3223
3224         * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
3225         Command_Line): New types
3226         (Define_Alias, Define_Prefix, Free): New subprograms. These provide
3227         support for defining how switches can be grouped on a command line (as
3228         is the case for -gnatw... for GNAT), and how simple switches can be
3229         used as aliases for more complex switches (-gnatwa is same as
3230         -gnatwbcef...)
3231         (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
3232         (Start, Current_*): New subprograms
3233         Added support for parsing an array of strings in addition to the real
3234         command line.
3235         (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
3236          be moved from the body to the private part of the spec.
3237         (*): All subprograms now have an extra parameter with default value to
3238         specify which parser should be used. For backward compatibility, it
3239         defaults to parsing the command line of the application. They were also
3240         modified to properly handle cases where each of the argument does not
3241         start at index 1 (which is always true for Ada.Command_Line, but not
3242         when processing any Argument_List).
3243         (Free): New subprogram
3244         (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
3245         Argument): New subprograms
3246         (Switch_Parameter_Type): New enum, which clarifies the code. The extra
3247         special characters like ':', '=',... are now handled in a single place,
3248         which makes the code more extensible eventually.
3249         (Getopt, Full_Switch): When the switch was returned as part of the
3250         special character '*', make sure it is prepended by the switch character
3251         ('-' in general), so that the application knows whether "foo" or "-foo"
3252         was specified on the command line.
3253
3254 2007-09-26  Florian Villoing  <villoing@adacore.com>
3255
3256         * g-dirope.adb (Remove_Dir): In case we are removing directories
3257         recursively, make sure that if an exception is raised during the
3258         processing, the current working directory is reset to its initial
3259         value before propagating the exception.
3260
3261 2007-09-26  Vincent Celier  <celier@adacore.com>
3262
3263         * gnatbind.adb: If there are several ALI files specified and there is
3264         a main program to bind, the first ALI is expected to contain the main
3265         subprogram and the names of the binder generated files will be derived
3266         from the first ALI file name.
3267         (Gnatbind): Fix insertion character in invocation of Error_Msg
3268
3269 2007-09-26  Vincent Celier  <celier@adacore.com>
3270
3271         * gnatcmd.adb (Check_Files): Do not include sources that have been
3272         removed by attributes Exclude_Source_Files or Locally_Removed_Files.
3273
3274 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
3275
3276         * lib-xref.ads, lib-xref.adb: The entry for array types now carries
3277         information about each of its index types, following the type
3278         reference for its component type.
3279
3280 2007-09-26  Vincent Celier  <celier@adacore.com>
3281
3282         * make.adb: (Kill): New procedure (__gnat_kill imported)
3283         (Running_Compile, Outstanding_Compiles): Global variables that
3284         were previously local to procedure Compile_Sources.
3285         (Sigint_Intercepted): Send signal SIGINT to all outstanding
3286         compilation processes.
3287
3288         (Gnatmake): If project files are used, create the mapping of all the
3289         sources, so that the correct paths will be found.
3290
3291         * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
3292
3293 2007-09-26  Vincent Celier  <celier@adacore.com>
3294
3295         * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
3296
3297         * prj.ads, prj.adb (Default_Language): Remove function, no longer used
3298         Replace components Compiler_Min_Options and Binder_Min_Options with
3299         Compiler_Required_Switches and Binder_Required_Switches in record
3300         Language_Config.
3301         Remove components Default_Language and Config in Project_Tree_Data,
3302         no longer used.
3303
3304         * prj-attr.adb: New attributes Required_Switches (<language>) in
3305         packages Compiler and Binder.
3306
3307         * prj-nmsc.adb: Major rewrite of the processing of configuration
3308         attributes for gprbuild. No impact on GNAT tools.
3309
3310         * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
3311         process configuration attributes: this is done in Prj.Nmsc.Check.
3312         (Recursive_Process): Make a full copy of packages inherited from project
3313         being extended, instead of a shallow copy.
3314         (Process_Project_Tree_Phase_1): New procedure
3315         (Process_Project_Tree_Phase_1): New procedure
3316         (Process): Implementation now uses the two new procedures
3317
3318         * prj-util.adb (Executable_Of): Get the suffix and the default suffix
3319         from the project config, not the tree config that no longer exists.
3320
3321 2007-09-26  Vincent Celier  <celier@adacore.com>
3322
3323         * Make-lang.in: Update dependencies..
3324
3325 2007-09-26  Vincent Celier  <celier@adacore.com>
3326
3327         * osint.adb, osint.ads: Minor reformatting
3328
3329         * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
3330
3331 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
3332
3333         * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
3334         message to cite use of <> in aggregate component associations rather
3335         than wrongly indicating use of limited aggregates.
3336
3337 2007-09-26  Robert Dewar  <dewar@adacore.com>
3338
3339         * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
3340         Address_Taken.
3341
3342 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
3343
3344         * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
3345         ancestor of the derived type, the operations are inherited from the
3346         primary dispatch table of the parent.
3347         (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
3348         when the context is an explicit type conversion.
3349
3350 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
3351
3352         * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
3353         rule for qualified expressions properly, to detect improper conversions
3354         and resolve some cases of overloading.
3355
3356 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
3357
3358         * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
3359         proper kind of reference to the primitive operation, for better source
3360         navigation.
3361         (Valid_Conversion): A tagged conversion is legal if both operands are
3362         tagged.
3363
3364 2007-09-26  Robert Dewar  <dewar@adacore.com>
3365
3366         * sem_warn.adb (Check_References): Catch more cases of unreferenced
3367         packages.
3368
3369 2007-09-26  Vincent Celier  <celier@adacore.com>
3370
3371         * snames.adb, snames.ads: Change Include_Option to Include_Switches
3372
3373 2007-09-26  Robert Dewar  <dewar@adacore.com>
3374
3375         * s-wchstw.adb: provide messages for run time unit exceptions
3376
3377         * a-witeio.adb: Minor reformatting
3378
3379         * exp_ch13.adb: Minor reformatting
3380
3381 2007-09-26  Sergey Rybin  <rybin@adacore.com>
3382
3383         * vms_data.ads: Revise gnatmetric qualifiers.
3384         Add qualified for the new gnatbind option '-y'
3385
3386         * gnat_ugn.texi: Revise the gnatmetric section.
3387         Add entry for new gnatbind option '-y'.
3388
3389         * gnat_rm.texi: Minor spelling correction.
3390         Document restriction on overlaying controlled types
3391
3392 2007-09-26  Vincent Celier  <celier@adacore.com>
3393
3394         * makegpr.adb (Link_Executables): Do not fail when the root project has
3395         no sources, but is an extending project.
3396
3397 2007-09-25  Eric Botcazou  <ebotcazou@adacore.com>
3398
3399         * trans.c: Fix misplaced #define.
3400
3401 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
3402
3403         * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
3404         the TYPE_REF_CAN_ALIAS_ALL flag to the result.
3405
3406 2007-09-21  Olivier Hainque  <hainque@adacore.com>
3407
3408         * utils.c (type_for_nonaliased_component_p): Return false for
3409         all AGGREGATE_TYPEs.
3410
3411 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
3412
3413         * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
3414         object covered by 13.3(19) volatile.
3415
3416 2007-09-12  Eric Botcazou  <ebotcazou@adacore.com>
3417
3418         PR ada/26797
3419         PR ada/32407
3420         * utils.c (unchecked_convert): Use a subtype as the intermediate type
3421         in the special VIEW_CONVERT_EXPR case.
3422
3423 2007-09-12  Robert Dewar  <dewar@adacore.com>
3424
3425         * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
3426
3427         * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
3428         lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
3429         s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
3430         s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
3431         s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
3432         s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
3433         s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
3434         s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
3435         a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads, 
3436         g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads, 
3437         s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb, 
3438         s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb, 
3439         snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads, 
3440         s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads, 
3441         s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads, 
3442         s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads, 
3443         s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
3444         pragma Compiler_Unit and adds it to relevant library units.
3445
3446 2007-09-12  Ed Schonberg  <schonberg@adacore.com>
3447
3448         * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
3449         a box need not correspond to any component.
3450
3451 2007-09-12  Robert Dewar  <dewar@adacore.com>
3452
3453         * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
3454         the tasking version of the Ada run time when foreign threads are
3455         present and there are no explicit Ada tasks or tasking constructs.
3456
3457         * gnat_rm.texi: Clarify documentation of GNAT.Threads.
3458
3459 2007-09-12  Hristian Kirtchev  <kirtchev@adacore.com>
3460
3461         * bindusg.adb (Display): Correct comment for switch -X. Add a line for
3462         the usage of switch -y.
3463
3464         * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
3465         when switch -y is present.
3466
3467         * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
3468         leap seconds in Ada.Calendar and its children.
3469
3470 2007-09-12  Jose Ruiz  <ruiz@adacore.com>
3471
3472         * a-extiti.ads (Timer): The discriminant is a "not null access
3473         constant" in the Reference Manual.
3474         (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
3475
3476 2007-09-12  Robert Dewar  <dewar@adacore.com>
3477
3478         * a-swuwha.adb: Remove junk RM header
3479
3480 2007-09-12  Vincent Celier  <celier@adacore.com>
3481
3482         * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
3483         indicator
3484
3485         * g-bytswa.ads: Minor reformatting
3486
3487 2007-09-12  Thomas Quinot  <quinot@adacore.com>
3488
3489         * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads: 
3490         Add new constant Thread_Blocking_IO, always True by default, set False
3491         on a per-runtime basis.
3492         (Need_Netdb_Buffer): New constant.
3493
3494 2007-09-12  Arnaud Charlet  <charlet@adacore.com>
3495
3496         * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
3497         Added renames for corresponding functions in System.Partition_Interface.
3498
3499 2007-09-12  Doug Rupp  <rupp@adacore.com>
3500
3501         * Makefile.in: Remove VMS specific System.CRTL packages which are no
3502         longer needed.
3503
3504         * s-crtl-vms64.ads: Removed.
3505
3506 2007-09-12  Olivier Hainque  <hainque@adacore.com>
3507
3508         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
3509         with discriminant constraints, generalize the code for BIT_FIELDs
3510         to PACKED fields of constant size and propagate DECL_PACKED.
3511
3512 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
3513
3514         * decl.c (array_type_has_nonaliased_component): New predicate.
3515         (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
3516         set the TYPE_NONALIASED_COMPONENT flag on the type.
3517         <E_Array_Subtype>: Likewise.
3518         * gigi.h (type_for_nonaliased_component_p): Declare.
3519         * utils.c (type_for_nonaliased_component_p): New predicate.
3520         (create_field_decl): Invoke the above predicate to set the
3521         DECL_NONADDRESSABLE_P flag on the field.
3522
3523 2007-09-11  Javier Miranda  <miranda@adacore.com>
3524
3525         * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
3526         in library level record type entities if we are generating statically
3527         allocated dispatch tables.
3528
3529         * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
3530         importing/exporting the _tag declaration by new code
3531         importing/exporting the dispatch table wrapper. This change allows us
3532         to statically allocate of the TSD.
3533         (Make_DT.Export_DT): New procedure.
3534         (Build_Static_DT): New function.
3535         (Has_DT): New function.
3536
3537         * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
3538         True_Constant and Current_Value. Required to statically
3539         allocate the dispatch tables.
3540         (Check_Allocator): Make function iterative instead of recursive.
3541         Also return inner allocator node, when present, so that we do not have
3542         to look for that node again in the caller.
3543
3544 2007-09-11  Jan Hubicka  <jh@suse.cz>
3545
3546         * misc.c (gnat_expand_body): Kill.
3547         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
3548
3549 2007-09-10  Robert Dewar  <dewar@adacore.com>
3550
3551         * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
3552         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
3553         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
3554         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
3555         ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
3556         bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
3557         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
3558         butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
3559         comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
3560         elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
3561         err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
3562         exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
3563         exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
3564         exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
3565         exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
3566         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
3567         exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
3568         exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
3569         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
3570         exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
3571         exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
3572         exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
3573         fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
3574         get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
3575         gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
3576         gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
3577         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
3578         gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
3579         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
3580         gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
3581         inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
3582         lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
3583         lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
3584         make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
3585         mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
3586         mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
3587         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
3588         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
3589         osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
3590         osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
3591         par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
3592         par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
3593         par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
3594         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
3595         par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
3596         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
3597         prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
3598         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
3599         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
3600         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
3601         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
3602         prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
3603         rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
3604         scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
3605         sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
3606         sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
3607         sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
3608         sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
3609         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
3610         sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
3611         sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
3612         sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
3613         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
3614         sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
3615         sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
3616         sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
3617         sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
3618         sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
3619         stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
3620         styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
3621         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
3622         switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
3623         tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
3624         treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
3625         types.h, uintp.h, urealp.h, usage.adb, usage.ads,
3626         validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
3627         xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
3628         xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
3629         gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
3630         mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
3631         symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
3632         mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
3633         mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
3634
3635 2007-09-10  Emmanuel Briot  <briot@adacore.com>
3636
3637         * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
3638         classes ("[]").
3639
3640 2007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>
3641
3642         * adaint.c (__gnat_translate_vms): new function.
3643
3644 2007-09-10  Gary Dismukes  <dismukes@adacore.com>
3645             Thomas Quinot  <quinot@adacore.com>
3646
3647         * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
3648         create an abstract subprogram in the case of 'Input. For 'Output we now
3649         create a real spec/body when the type is abstract, since it can
3650         potentially be called.
3651         (Predefined_Primitive_Bodies): Now allow the creation of a predefined
3652         body for 'Output when the type is abstract (only the creation of the
3653         body for 'Input is excluded when the type is abstract).
3654         (Stream_Operation_OK): Add an additional condition in the return
3655         statement, so that False will be returned for TTS_Stream_Input if the
3656         associated tagged type is an abstract extension. Add comments for
3657         return statement.
3658         (Expand_N_Object_Declaration): For the case of a shared passive
3659         variable, insert init proc call only after the shared variable
3660         procedures have been processed, because the IP call needs to undergo
3661         shared passive variable reference expansion, which requires these
3662         procedures to be available (and elaborated).
3663
3664 2007-09-10  Vincent Celier  <celier@adacore.com>
3665
3666         * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
3667         parameter Runtime_Project.
3668
3669 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
3670
3671         * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
3672         given a box association, the type of the component is discriminated,
3673         and the value of the discriminant is the discriminant of the enclosing
3674         type, retrieve its value from the aggregate itself, where it must have
3675         been supplied.
3676
3677         * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
3678         to remove other spurious ambiguities on arithmetic operations involving
3679         literals and addresses, on systems where Address is a visible integer
3680         type, when the operator is called in functional notation.
3681         (Try_Primitive_Operation): Within an instance, a call in prefixed form
3682         is legal when the types match, even if the operation is currently
3683         hidden.
3684
3685 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
3686
3687         * sem_ch12.adb (Build_Local_Package): A formal package with no
3688         associations is legal if all formals have defaults. It is not
3689         equivalent to a formal declared with a box.
3690
3691 2007-09-10  Sergey Rybin  <rybin@adacore.com>
3692
3693         * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
3694
3695 2007-09-10  Sergey Rybin  <rybin@adacore.com>
3696
3697         * gnat_ugn.texi: Add description of the new '-lratio' option
3698         Update 7.3.1 section about availability of the feature.
3699
3700 2007-09-10  Thomas Quinot  <quinot@adacore.com>
3701
3702         * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
3703         inserted node.
3704
3705 2007-09-10  Olivier Hainque  <hainque@adacore.com>
3706
3707         * Makefile.in: (mips-irix section): Activate build of libgmem.
3708
3709 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
3710
3711         * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
3712         x87 registers.
3713
3714 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
3715
3716         * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
3717         a debug renaming declaration specially.
3718
3719 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
3720
3721         * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
3722         which a constant renaming is treated as a normal object declaration.
3723         * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
3724         the N_Indexed_Component case.
3725         <N_Indexed_Component>: Fall through to above case.
3726         <N_Object_Renaming_Declaration>: Return true for all composite types.
3727
3728 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
3729
3730         * decl.c (make_packable_type): If the new type has been given BLKmode,
3731         try again to get an integral mode for it.
3732
3733 2007-09-07  Eric Botcazou  <ebotcazou@adacore.com>
3734
3735         Re-apply accidentally reverted change:
3736
3737         2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
3738
3739         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
3740         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
3741         and _Unwind_SWord with _sleb128_t.
3742
3743 2007-09-06  Eric Botcazou  <ebotcazou@adacore.com>
3744
3745         * trans.c (convert_with_check): Update call to real_2expN.
3746
3747 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
3748
3749         * trans.c (Compilation_unit_to_gnu): Use set_cfun.
3750         * utils.c (end_subprog_body): Likewise.
3751
3752 2007-09-03  Nick Clifton  <nickc@redhat.com>
3753
3754         * Make-lang.in: Change copyright header to refer to version 3 of
3755         the GNU General Public License and to point readers at the
3756         COPYING3 file and the FSF's license web page.
3757         * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
3758         Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
3759         namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
3760         treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
3761         Likewise.
3762
3763 2007-08-31  Vincent Celier  <celier@adacore.com>
3764
3765         PR ada/4720
3766
3767         * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb, 
3768         gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
3769         (Check_Version_And_Help): New procedure in package Switch to process
3770         switches --version and --help.
3771         Use Check_Version_And_Help in GNAT tools
3772
3773         * make.adb:  Ditto.
3774         (Compile_Sources): Make sure that sources that are "excluded" are not
3775         compiled.
3776         (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
3777         project file is used.
3778         (Version_Switch): Remove, moved to Switch
3779         (Help_Switch): Remove, moved to Switch
3780         (Display_Version): Remove, moved to Switch
3781
3782         * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
3783         package Switch to process switches --version and --help.
3784         (Display_Version): New procedure
3785
3786         * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
3787
3788 2007-08-31  Javier Miranda  <miranda@adacore.com>
3789
3790         * a-tags.adb (Internal_Tag): Protect the run-time against wrong
3791         internal tags.
3792
3793 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
3794
3795         * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
3796         (Mark_Non_Null): If the node for which we just generated an access check
3797         is a reference to an *in* parameter and the reference appears in the
3798         declarative part of a subprogram body, mark the node as known non null.
3799
3800 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
3801
3802         * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
3803         structure of E_Exception to reflect the new flag.
3804         (Is_Raised, Set_Is_Raised): New inlined routines.
3805         Update the usage of available flag to reflect the addition of Is_Raised.
3806         (Is_Raised, Set_Is_Raised): Bodies of new routines.
3807         (Write_Entity_Flags): Write the status of flag Is_Raised.
3808         (Is_Descendent_Of_Address): New entity flag, to simplify handling of
3809         spurious ambiguities when integer literals appear in the context of an
3810         address type that is a visible integer type.
3811
3812         * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
3813         exceptions never being raised.
3814         (Analyze_Raise_Statement): When analyzing an exception, mark it as being
3815         explicitly raised.
3816
3817 2007-08-31  Javier Miranda  <miranda@adacore.com>
3818
3819         * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
3820         statement when compiling under restriction No_Exceptions_Proparation.
3821
3822 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
3823
3824         * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
3825         initialization aggregate for the type, generate itype references for
3826         thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
3827
3828 2007-08-31  Gary Dismukes  <dismukes@adacore.com>
3829
3830         * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
3831         library-level package renaming, pass the declaration associated with
3832         the renaming's special debug variable to Qualify_Entity_Names to ensure
3833         that its encoded name is properly qualified.
3834
3835         * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
3836         occurring in the list of entities to qualify, and do not attempt to
3837         traverse an entity list in that case. Variables associated with
3838 `       library-level package renamings can now occur in the table.
3839
3840         * exp_dbug.ads: Revise documentation of the encoding for renaming
3841         declarations.
3842
3843 2007-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3844
3845         * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
3846         access type points to an unconstrained array.
3847
3848 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
3849
3850         * restrict.adb, namet.adb, par-util.adb: Remove redundant type
3851         conversion.
3852
3853         * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
3854         simple redundant qualifications. The check is performed whenever the
3855         expression is a non-overloaded identifier.
3856         (Resolve_Type_Conversion): Enchance the redundant type conversion check
3857         to include loop parameters.
3858         (Valid_Conversion): Avoid generation of spurious error message.
3859
3860 2007-08-31  Bob Duff  <duff@adacore.com>
3861
3862         * par-ch4.adb (P_Simple_Expression): Fold long sequences of
3863         concatenations of string literals into a single literal, in order to
3864         avoid very deep recursion in the front end, which was causing stack
3865         overflow.
3866
3867         * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
3868         string, and the right operand is a string literal (the case of "" &
3869         "..."), optimize by avoiding copying the right operand -- just use the
3870         value of the right operand directly.
3871
3872         * stringt.adb (Store_String_Chars): Optimize by growing the
3873         String_Chars table all at once, rather than appending characters one by
3874         one.
3875         (Write_String_Table_Entry): If the string to be printed is very long,
3876         just print the first few characters, followed by the length. Otherwise,
3877         doing "pn(n)" in the debugger can take an extremely long time.
3878
3879         * sem_prag.adb (Process_Interface_Name): Replace loop doing
3880         Store_String_Char with Store_String_Chars.
3881
3882 2007-08-31  Vincent Celier  <celier@adacore.com>
3883
3884         * prj-attr.adb: Add new attribute Excluded_Source_Files
3885
3886         * prj-nmsc.adb: Use attribute Excluded_Source_Files before
3887         Locally_Removed_Files.
3888
3889         * snames.ads, snames.adb: New standard name Excluded_Source_Files
3890
3891 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
3892
3893         * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
3894         clauses of subunits, ignore limited_with_clauses that are illegal and
3895         have not been fully analyzed.
3896
3897 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
3898
3899         * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
3900         flag, for effiency. It is called when analyzing arithmetic operators
3901         and also for actuals in calls that are universal_integers. The flag is
3902         set for the predefined type address, and for any type or subtype
3903         derived from it.
3904
3905         * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
3906         Universal_Integer, when the formal is a descendent of address and the
3907         call appears in user code.
3908         (Analyze_Selected_Component): if the prefix is a private extension, the
3909         tag component is visible.
3910
3911         * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
3912         entity flag.
3913
3914 2007-08-31  Robert Dewar  <dewar@adacore.com>
3915
3916         * s-fileio.adb (Open): Normalize file name to lower case in non-case
3917         sensitive file name systems to avoid unexpected mismatch in Vista.
3918
3919 2007-08-31  Vincent Celier  <celier@adacore.com>
3920
3921         * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
3922
3923 2007-08-31  Vincent Celier  <celier@adacore.com>
3924
3925         * symbols-vms.adb (Initialize): Read symbol files with continuation
3926         lines
3927         (Finalize): If symbol is long, split the line
3928
3929 2007-08-31  Vincent Celier  <celier@adacore.com>
3930
3931         * fmap.ads: Minor comment updates
3932
3933 2007-08-31  GNAT Script  <nobody@adacore.com>
3934
3935         * Make-lang.in: Makefile automatically updated
3936
3937 2007-08-31  Bob Duff  <duff@adacore.com>
3938
3939         * sinfo.ads: Minor comment fix.
3940
3941 2007-08-31  Thomas Quinot  <quinot@adacore.com>
3942
3943         * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
3944         with implementation.
3945         Documentation cleanup only.
3946
3947 2007-08-31  Sergey Rybin  <rybin@adacore.com>
3948
3949         * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
3950         gnatpp '--separate-stmt-name' option.
3951         Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
3952         option.
3953
3954         * gnat_ugn.texi: Add description for the new gnatpp
3955         '--separate-stmt-name' and '--use-on-new-line' options.
3956
3957 2007-08-31  Ben Elliston  <bje@au.ibm.com>
3958
3959         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
3960         when compiling for powerpc64-*-linux.
3961         * system-linux-ppc64.ads: New file.
3962
3963 2007-08-22  Krister Walfridsson  <cato@df.lth.se>
3964
3965         * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
3966         NetBSD.
3967
3968 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3969
3970         * misc.c (gnat_type_max_size): Constify.
3971
3972 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
3973
3974         * cstand.adb (Create_Standard): Create an entity for a zero-sized type
3975         associated with Standard_Debug_Renaming_Type, to be used as the type of
3976         the special variables whose names provide debugger encodings for
3977         renaming declarations.
3978
3979         * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
3980         (Set_Debug_Renaming_Link): Change to set Node25.
3981         (Write_Field13_Name): Remove case for E_Enumeration_Literal.
3982         (Write_Field25_Name): Add case for E_Variable to output
3983         "Debug_Renaming_Link".
3984         (Write_Field23_Name): Correct the output string for "Limited_View".
3985
3986         * exp_dbug.adb: Add with and use of Tbuild.
3987         (Debug_Renaming_Declaration): Replace creation of an enumeration type
3988         and literal with creation of a variable of type
3989         Standard_Debug_Renaming_Type whose name encodes both the renamed object
3990         and the entity of the renaming declaration.
3991         (Qualify_Entity_Name): Add the delayed qualification of the entity name
3992         part of the name of a variable that has a Debug_Renaming_Link.
3993
3994         * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
3995         special type to be associated with variables that provide debugger
3996         encodings for renaming declarations.
3997
3998 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
3999             Ed Schonberg  <schonberg@adacore.com>
4000             Javier Miranda  <miranda@adacore.com>
4001
4002         * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
4003         ancestor part given by an aggregate to test for an unchecked conversion,
4004         since this can occur in some cases when the ancestor part is a function
4005         call, and we don't want to fall into the recursive call to this
4006         procedure in that case.
4007
4008         * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
4009         stream attributes on limited types to account for user-specified
4010         attributes as well as whether Input (resp. Output) becomes available
4011         due to Read (resp. Write) being available for the type. Change Boolean
4012         variable to the more accurate name
4013         Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
4014         double-"not" predicate at beginning of return statement to more
4015         understandable form.
4016
4017         * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
4018         return has an associated N_Handled_Sequence_Of_Statements, then wrap it
4019         in a block statement and use that as the first statement of the
4020         expanded return rather than incorrectly using the handled sequence as
4021         the first statement.
4022
4023         * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
4024         operation, generate an explicit freeze node for it rather than
4025         generating extra formals, to ensure that gigi has the proper order of
4026         elaboration for anonymous subtypes in the signature of the subprograms.
4027         (Build_In_Place_Formal): Move assertion to beginning of loop.
4028         (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
4029         applied to a function call (occurs for some cases of 'Input).
4030         (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
4031         applied to a function call (occurs for some cases of 'Input).
4032
4033         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
4034         2005, generate an extended return statement enclosing the result object
4035         and 'Read call.
4036
4037         * freeze.adb (Freeze_Record_Type): Extend the current management of
4038         components that are access type with an allocator as default value: add
4039         missing support to the use of qualified expressions of the
4040         allocator (which also cause freezing of the designated type!)
4041         (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
4042         dispatching operation, since extra formals may be needed by calls to
4043         build-in-place functions (such as stream 'Input).
4044
4045         * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
4046         formals for 'Constrained and accessibility level in the case of a
4047         predefined dispatching operation.
4048
4049         * exp_util.adb (Insert_Actions): A protected body is a valid insertion
4050         point, no need to find the parent node.
4051
4052 2007-08-16  Javier Miranda  <miranda@adacore.com>
4053
4054         * exp_attr.adb (Attribute_Priority): Add missing support for entries
4055         and entry barriers.
4056
4057 2007-08-16  Javier Miranda  <miranda@adacore.com>
4058
4059         * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
4060         is not really required and can introduce regression with the debugger.
4061         The original problem is fixed with the patch written for checks.adb.
4062
4063 2007-08-16  Thomas Quinot  <quinot@adacore.com>
4064
4065         * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
4066         Range_Check on Allocated_Table.
4067
4068 2007-08-16  Vincent Celier  <celier@adacore.com>
4069
4070         * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
4071         Including_Non_Switch set to False.
4072         (Gnatmake): For the compiler, call Test_If_Relative_Path with
4073         Including_Non_Switch set to False.
4074
4075         * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
4076         parameter Including_Non_Switch, defaulted to True. When
4077         Including_Non_Switch is False, options that are not switches and
4078         appear as relative path are not converted to absolute paths.
4079
4080 2007-08-16  Nicolas Roche  <roche@adacore.com>
4081
4082         * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
4083         makefiles
4084
4085         * Make-lang.in: Update dependencies
4086
4087 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
4088
4089         * sem_ch10.adb (Has_With_Clause): If the name of the with clause
4090         currently inspected is a selected component, retrieve the entity of
4091         its selector.
4092         (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
4093         from the immediate ancestor of Main_Unit_Entity.
4094         (Install_Limited_Withed_Unit): Do not install the limited view of
4095         package P if P is reachable through an ancestor chain from package C
4096         and C also has a with clause for P in its body.
4097         (Has_Limited_With_Clause): New routine.
4098         (Has_With_Clause): New routine.
4099
4100 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
4101
4102         * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
4103         generic for an enclosing instance is a global reference, even though
4104         its scope is the enclosing instance.
4105
4106 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
4107             Javier Miranda  <miranda@adacore.com>
4108
4109         * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
4110         initialize a limited object.
4111         (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
4112         13/2 and 14/2.
4113         Make sure Has_Complex_Representation is inherited by derived type.
4114
4115 2007-08-16  Robert Dewar  <dewar@adacore.com>
4116
4117         * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
4118         exception case
4119
4120 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
4121
4122         * sem_disp.adb (Check_Dispatching_Operation): If the operation
4123         implements an operation inherited from a progenitor interface, verify
4124         that they are subtype-conformant.
4125
4126 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
4127             Bob Duff  <duff@adacore.com>
4128             Nicolas Setton  <setton@adacore.com>
4129
4130         * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
4131         (Resolve): Alphabetize local variables. Add new variable From_Lib. When
4132         the statement which is being resolved comes from a predefined library
4133         unit, all non-predefined library interpretations are skipped.
4134         (Resolve_Op_Concat): If string concatenation was folded in the parser,
4135         but the "&" is user defined, give an error, because the folding would
4136         be wrong.
4137
4138         * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
4139         the parser has folded a long sequence of concatenations of string
4140         literals.
4141
4142         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
4143         and "JMP_BUF" variables as artificial.
4144         (N_String_Literal): Do not use alloca for very long string literals. Use
4145         xmalloc/free instead. Otherwise the stack might overflow.
4146
4147         * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
4148         compiler.
4149
4150 2007-08-16  Vincent Celier  <celier@adacore.com>
4151
4152         * vms_conv.adb (Process_Argument): Ensure that project related options
4153         are not put in the -cargs section when using GNAT COMPILE.
4154
4155 2007-08-16  Robert Dewar  <dewar@adacore.com>
4156
4157         * gnat_ugn.texi: Add note on preprocessing (output file not written)
4158
4159 2007-08-16  Thomas Quinot  <quinot@adacore.com>
4160
4161         * a-tags.adb: Minor reformatting.
4162
4163 2007-08-16  Bob Duff  <duff@adacore.com>
4164
4165         * sem_type.ads, sem_ch4.adb: Minor reformatting.
4166
4167 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4168
4169         * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads, 
4170         s-osinte-interix.ads, system-interix.ads: Removed.
4171
4172 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
4173
4174         * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
4175         calls to Check_Within_Time_Bounds.
4176         ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
4177         (Difference): Account for possible rounding of the resulting difference
4178
4179 2007-08-14  Robert Dewar  <dewar@adacore.com>
4180
4181         * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
4182         par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
4183         s-osinte-solaris.adb, s-osinte-solaris.ads,
4184         s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
4185
4186         * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
4187         switch -gnatyS. Enable -gnatyS in GNAT style check mode
4188
4189 2007-08-14  Robert Dewar  <dewar@adacore.com>
4190             Ed Schonberg  <schonberg@adacore.com>
4191
4192         * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads: 
4193         Suppress unmodified in-out parameter warning in some cases
4194         This patch is a also fairly significant change to the way suppressible
4195         checks are handled.
4196
4197         * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
4198         needed for access to concurrent record types generated by the expander.
4199         (Generate_Range_Check): When generating a temporary to capture the
4200         value of a conversion that requires a range check, set the type of the
4201         temporary before rewriting the node, so that the type is always
4202         properly placed for back-end use.
4203         (Apply_Float_Conversion_Check): Handle case where the conversion is
4204         truncating.
4205         (Get_Discriminal): Code reformatting. Climb the scope stack looking
4206         for a protected type in order to examine its discriminants.
4207
4208 2007-08-14  Robert Dewar  <dewar@adacore.com>
4209             Gary Dismukes  <dismukes@adacore.com>
4210             Ed Schonberg  <schonberg@adacore.com>
4211             Thomas Quinot  <quinot@adacore.com>
4212
4213         * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb, 
4214         a-stwisu.adb, a-strsup.adb: Fix warnings for range
4215         tests optimized out.
4216
4217         * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
4218         (Get_Allocator_Final_List): For the case of an anonymous access type
4219         that has a specified Associated_Final_Chain, do not go up to the
4220         enclosing scope.
4221         (Expand_N_Type_Conversion): Test for the case of renamings of access
4222         parameters when deciding whether to apply a run-time accessibility
4223         check.
4224         (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
4225         aggregate code before allocator, and ahead of declaration for
4226         temporary, to prevent access before elaboration when the allocator is
4227         an actual for an access parameter.
4228         (Expand_N_Type_Conversion): On an access type conversion involving an
4229         access parameter, do not apply an accessibility check when the
4230         operand's original node was an attribute other than 'Access. We now
4231         create access conversions for the expansion of 'Unchecked_Access and
4232         'Unrestricted_Access in certain cases and clearly accessibility should
4233         not be checked for those.
4234
4235         * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
4236         includes a type conversion of a packed component that has been expanded,
4237         recover the original expression for the object, and use this expression
4238         in the post-call assignment statement, so that the assignment is made
4239         to the object and not to a back-end temporary.
4240         (Freeze_Subprogram): In case of primitives of tagged types not defined
4241         at the library level force generation of code to register the primitive
4242         in the dispatch table. In addition some code reorganization has been
4243         done to leave the implementation clear.
4244         (Expand_Call): When expanding an inherited implicit conversion,
4245         preserve the type of the inherited function after the intrinsic
4246         operation has been expanded.
4247
4248         * exp_ch2.ads, exp_ch2.adb
4249         (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
4250         of an entry formal appearing in an assignment statement does not assign
4251         to the formal.
4252         (Expand_Current_Value): Instead of calling a routine to determine
4253         whether the prefix of an attribute reference should be optimized or
4254         not, prevent the optimization of such prefixes all together.
4255
4256         * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
4257         component whose prefix is known to be of an access type is an implicit
4258         dereference and does not assign to the prefix.
4259
4260 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4261             Robert Dewar  <dewar@adacore.com>
4262
4263         * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
4264         itype is visited, make an entry into table to link associated node and
4265         new itype.
4266         Add comments and correct harmless error in Build_NCT_Hash_Tables
4267         (Array_Aggr_Subtype): Associate each itype created for an index type to
4268         the corresponding range construct, and not to the aggregate itself. to
4269         maintain a one-to-one correspondence between itype and its associated
4270         node, to prevent errors when complex expression is copied.
4271         Fix mishandling of multiple levels of parens
4272
4273         * sem_aggr.adb: Create a limited view of an incomplete type, to make
4274         treatment of limited views uniform for all visible declarations in a
4275         limited_withed package.
4276         (New_Copy_Tree): If hash table is being used and itype is visited,
4277         make an entry into table to link associated node and new itype.
4278         (Resolve_Record_Aggregate): Do not add an others box association for a
4279         discriminated record component that has only discriminants, when there
4280         is a box association for the component itself.
4281
4282         * par-ch4.adb: Fix mishandling of multiple levels of parens
4283
4284 2007-08-14  Robert Dewar  <dewar@adacore.com>
4285
4286         * comperr.adb: Fix problem with suppressing warning messages from gigi
4287
4288         * erroutc.ads, erroutc.adb, errout.ads, 
4289         errout.adb (Write_Eol): Remove trailing spaces before writing the line
4290         (Write_Eol_Keep_Blanks): New procedure to write a line, including
4291         possible trailing spaces.
4292         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
4293         Fix problem with suppressing warning messages from back end
4294         Improve handling of deleted warnings
4295
4296         * gnat1drv.adb: 
4297         Fix problem with suppressing warning messages from back end
4298         Handle setting of Static_Dispatch_Tables flag.
4299
4300         * prepcomp.adb: 
4301         Fix problem with suppressing warning messages from back end
4302
4303         * exp_intr.adb: Improve handling of deleted warnings
4304
4305 2007-08-14  Robert Dewar  <dewar@adacore.com>
4306
4307         * debug.adb: Improve -gnatdI to cover all cases of serialization
4308         Add documentation of dZ, d.t
4309
4310         * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
4311         serialization.
4312         (Sprint_Node_Actual): Generate new output associated with implicit
4313         importation and implicit exportation of object declarations.
4314
4315 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4316             Robert Dewar  <dewar@adacore.com>
4317             Javier Miranda  <miranda@adacore.com>
4318             Gary Dismukes  <dismukes@adacore.com>
4319
4320         * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
4321         to make treatment of limited views uniform for all visible declarations
4322         in a limited_withed package.
4323         Improve warnings for in out parameters
4324         (Set_Related_Interaface/Related_Interface): Allow the use of this
4325         attribute with constants.
4326         (Write_Field26_Name): Handle attribute Related_Interface in constants.
4327         Warn on duplicate pragma Preelaborable_Initialialization
4328
4329         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
4330         generation of a freezing node to ensure proper management of null
4331         excluding access types in the backend.
4332         (Create_Extra_Formals): Test base type of the formal when checking for
4333         the need to add an extra accessibility-level formal. Pass the entity E
4334         on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
4335         originally being done in a couple of cases), to ensure that the
4336         Extra_Formals list gets set on the entity E when the first entity is
4337         added.
4338         (Conforming_Types): Add missing calls to Base_Type to the code that
4339         handles anonymous access types. This is required to handle the
4340         general case because Process_Formals builds internal subtype entities
4341         to handle null-excluding access types.
4342         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
4343         functions that need it, even when not marked Requires_Overriding.
4344         Improve warnings for in out parameters
4345         (Analyze_Function_Return): Warn for disallowed null return
4346         Warn on return from procedure with unset out parameter
4347         Ensure consistent use of # in error messages
4348         (Check_Overriding_Indicator): Add in parameter Is_Primitive.
4349         (Analyze_Function_Return): Move call to Apply_Constraint_Check before
4350         the implicit conversion of the expression done for anonymous access
4351         types. This is required to generate the code of the null excluding
4352         check (if required).
4353
4354         * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
4355         A formal parameter is never publicly referenceable outside of its body.
4356         (Check_References): For an unreferenced formal parameter in an accept
4357         statement, use the same warning circuitry as for subprogram formal
4358         parameters.
4359         (Warn_On_Unreferenced_Entity): New subprogram, taken from
4360         Output_Unreferenced_Messages, containing the part of that routine that
4361         is now reused for entry formals as described above.
4362         (Goto_Spec_Entity): New function
4363         (Check_References): Do not give IN OUT warning for dispatching operation
4364         Improve warnings for in out parameters
4365         (Test_Ref): Check that the entity is not undefinite before calling
4366         Scope_Within, in order to avoid infinite loops.
4367         Warn on return from procedure with unset out parameter
4368         Improved warnings for unused variables
4369
4370 2007-08-14  Robert Dewar  <dewar@adacore.com>
4371             Javier Miranda  <miranda@adacore.com>
4372             Gary Dismukes  <dismukes@adacore.com>
4373
4374         * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
4375         (Expand_N_Attribute_Reference): Further unify the handling of the
4376         three forms of access attributes, using common code now for all three
4377         cases. Add a test for the case of applying an access attribute to
4378         an explicit dereference when the context is an access-to-interface
4379         type. In that case we need to apply the conversion to the prefix
4380         of the explicit dereference rather than the prefix of the attribute.
4381         (Attribute_Version, UET_Address): Set entity as internal to ensure
4382         proper dg output of implicit importation.
4383         (Expand_Access_To_Type): Removed.
4384         (Expand_N_Attribute_Reference): Merge the code from the three cases
4385         of access attributes, since the processing is largely identical for
4386         these cases. The substantive fix here is to process the case of a
4387         type name prefix (current instance case) before handling the case
4388         of interface prefixes.
4389
4390 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4391             Ed Schonberg  <schonberg@adacore.com>
4392             Javier Miranda  <miranda@adacore.com>
4393             Robert Dewar  <dewar@adacore.com>
4394
4395         * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
4396         (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
4397         type that is an anonymous access to controlled object, establish
4398         an associated finalization chain to avoid corrupting the global
4399         finalization list when a dynamically allocated object designated
4400         by such a component is deallocated.
4401         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
4402         functions that need it, even when not marked Requires_Overriding.
4403         (Initialize_Tag): Replace call to has_discriminants by call to
4404         Is_Variable_Size_Record in the circuitry that handles the
4405         initialization of secondary tags.
4406         (Is_Variable_Size_Record): New implementation.
4407         (Expand_N_Object_Declaration): Suppress call to init proc if there is a
4408         Suppress_Initialization pragma for a derived type.
4409         (Is_Variable_Size_Record): New subprogram.
4410         (Build_Offset_To_Top_Functions): New implementation that simplifies the
4411         initial version of this routine and also fixes problems causing
4412         incomplete initialization of the table of interfaces.
4413         (Build_Init_Procedure): Improve the generation of code to initialize the
4414         the tag components of secondary dispatch tables.
4415         (Init_Secondary_Tags): New implementation that simplifies the previous
4416         version of this routine.
4417         (Make_DT): Add parameter to indicate when type has been frozen by an
4418         object declaration, for diagnostic purposes.
4419         (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
4420         diagnose attemps to freeze a subprogram when some untagged type of its
4421         profile is a private type whose full view has not been analyzed yet.
4422         (Freeze_Array_Type): Generate init proc for packed array if either
4423         Initialize or Normalize_Scalars is set.
4424         (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
4425         constructing the new profile, copy the null_exclusion indicator for each
4426         parameter, to ensure full conformance of the new body with the spec.
4427
4428         * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
4429         Create wrappers for constructor functions that need it, even when not
4430         marked Requires_Overriding.
4431         (Covers): Handle properly designated types of anonymous access types,
4432         whose non-limited views are themselves incomplete types.
4433         (Add_Entry): Use an entity to store the abstract operation which hides
4434         an interpretation.
4435         (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
4436         (Collect_Interps): Use Empty as an actual for Abstract_Op in the
4437         initialization aggregate.
4438         (Function_Interp_May_Be_Hidden): Rename to
4439         Function_Interp_Has_Abstract_Op.
4440         (Has_Compatible_Type): Remove machinery that skips interpretations if
4441         they are labeled as potentially hidden by an abstract operator.
4442         (Has_Hidden_Interp): Rename to Has_Abstract_Op.
4443         (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
4444         (Write_Overloads): Output the abstract operator if present.
4445         (Add_Entry): Before inserting a new entry into the interpretation table
4446         for a node, determine whether the entry will be disabled by an abstract
4447         operator.
4448         (Binary_Op_Interp_May_Be_Hidden): New routine.
4449         (Collect_Interps): Add value for flag May_Be_Hidden in initialization
4450         aggregate.
4451         (Function_Interp_May_Be_Hidden): New routine.
4452         (Has_Compatible_Type): Do not consider interpretations hidden by
4453         abstract operators when trying to determine whether two types are
4454         compatible.
4455         (Has_Hidden_Interp): New routine.
4456         (Set_May_Be_Hidden_Interp): New routine.
4457         (Write_Overloads): Write the status of flag May_Be_Hidden.
4458
4459 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4460             Javier Miranda  <miranda@adacore.com>
4461
4462         * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
4463         types declared in the declarative part of a nested package body or in
4464         the proper body of a stub.
4465         (Set_All_DT_Position): Add missing check to avoid wrong assignation
4466         of the same dispatch table slot to renamed primitives.
4467         (Make_Select_Specific_Data_Table): Handle private types.
4468         (Tagged_Kind): Handle private types.
4469         (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
4470         output of implicit importation and exportation.
4471         (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
4472         first formal of the thunk is always associated with the controlling
4473         type. In addition perform the following code cleanup: remove formal
4474         Thunk_Alias which is no longer required, cleanup evaluation of the
4475         the controlling type, and update the documentation.
4476         Replace occurrence of Default_Prim_Op_Count by
4477         Max_Predef_Prims. Addition of compile-time check to verify
4478         that the value of Max_Predef_Prims is correct.
4479         (Check_Premature_Freezing): Apply check in Ada95 mode as well.
4480         (Make_DT): Add parameter to indicate when type has been frozen by an
4481         object declaration, for diagnostic purposes.
4482         (Build_Static_Dispatch_Tables): New subprogram that takes care of the
4483         construction of statically allocated dispatch tables.
4484         (Make_DT): In case of library-level tagged types export the declaration
4485         of the primary tag. Remove generation of tags (now done by Make_Tags).
4486         Additional modifications to handle non-static generation of dispatch
4487         tables. Take care of building tables for asynchronous interface types
4488         (Make_Tags): New subprogram that generates the entities associated with
4489         the primary and secondary tags of Typ and fills the contents of Access_
4490         Disp_Table. In case of library-level tagged types imports the forward
4491         declaration of the primary tag that will be declared later by Make_DT.
4492         (Expand_Interface_Conversion): In case of access types to interfaces
4493         replace an itype declaration by an explicit type declaration to avoid
4494         problems associated with the scope of such itype in transient blocks.
4495
4496 2007-08-14  Robert Dewar  <dewar@adacore.com>
4497             Ed Schonberg  <schonberg@adacore.com>
4498             Javier Miranda  <miranda@adacore.com>
4499
4500         * exp_util.ads, exp_util.adb: 
4501         This patch replaces a number of occurrences of explicit tests for N_Null
4502         with calls to Known_Null. This improves tracking of null values, since
4503         Known_Null also catches null constants, and variables currently known to
4504         be null, so we get better tracking.
4505         (Ensure_Defined): create an itype reference only in the scope of the
4506         itype.
4507         (Side_Effect_Free): A selected component of an access type that
4508         denotes a component with a rep clause must be treated as not
4509         side-effect free, because if it is part of a linked structure its
4510         value may be affected by a renaming.
4511         (Expand_Subtype_From_Expr): For limited objects initialized with build
4512         in place function calls, do nothing; otherwise we prematurely introduce
4513         an N_Reference node in the expression initializing the object, which
4514         breaks the circuitry that detects and adds the additional arguments to
4515         the called function. Bug found working in the new patch for statically
4516         allocated dispatch tables.
4517         (Is_Library_Level_Tagged_Type): New subprogram.
4518         (Remove_Side_Effects): If the expression of an elementary type is an
4519         operator treat as a function call.
4520         (Make_Literal_Range): If the index type of the array is not integer, use
4521         attributes properly to compute the constraint on the resulting aggregate
4522         which is a string.
4523
4524         * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
4525         class-wide type whose base type is an incomplete private type, leave
4526         class-wide type unfrozen so that freeze nodes can be generated
4527         properly at a later point.
4528         (Freeze_Entity, array case): Handle case of pragma Pack and component
4529         size attributre clause for same array.
4530
4531 2007-08-14  Vincent Celier  <celier@adacore.com>
4532
4533         * prj.ads, prj.adb: Update Project Manager to new attribute names for
4534         gprbuild.
4535         Allow all valid declarations in configuration project files
4536         (Reset): Initialize all tables and hash tables in the project tree data
4537         Major update of the Project Manager and of the project aware tools,
4538         including gprmake, so that the same sources in the GNAT repository
4539         can be used by gprbuild.
4540         (Slash_Id): Change type to be Path_Name_Type
4541         (Slash): Return a Path_Name_Type instead of a File_Name_Type
4542
4543         * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
4544         gprbuild.
4545         Update Project Manager to new attribute names for ghprbuild
4546         Allow all valid declarations in configuration project files
4547         Major update of the Project Manager and of the project aware tools,
4548         including gprmake, so that the same sources in the GNAT repository
4549         can be used by gprbuild.
4550
4551         * prj-com.ads: 
4552         Major update of the Project Manager and of the project aware tools,
4553         including gprmake, so that the same sources in the GNAT repository
4554         can be used by gprbuild.
4555
4556         * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
4557         insensitive flag for attributes with optional index.
4558         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
4559         array attribute, put the index in lower case.
4560         Update Project Manager to new attribute names for ghprbuild
4561         Allow all valid declarations in configuration project files
4562         Major update of the Project Manager and of the project aware tools,
4563         including gprmake, so that the same sources in the GNAT repository
4564         can be used by gprbuild.
4565
4566         * prj-env.ads, prj-env.adb: 
4567         Major update of the Project Manager and of the project aware tools,
4568         including gprmake, so that the same sources in the GNAT repository
4569         can be used by gprbuild.
4570         (Get_Reference): Change type of parameter Path to Path_Name_Type
4571
4572         * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
4573         removing '-' from the path to start with the first character of the
4574         next directory.
4575         Major update of the Project Manager and of the project aware tools,
4576         including gprmake, so that the same sources in the GNAT repository
4577         can be used by gprbuild.
4578         Major update of the Project Manager and of the project aware tools,
4579         including gprmake, so that the same sources in the GNAT repository
4580         can be used by gprbuild.
4581
4582         * prj-nmsc.ads, prj-nmsc.adb: 
4583         Update Project Manager to new attribute names for ghprbuild
4584         Allow all valid declarations in configuration project files
4585         (Search_Directories): Detect subunits that are specified with an
4586         attribute Body in package Naming. Do not replace a source/unit in the
4587         same project when the order of the source dirs are known. Detect
4588         duplicate sources/units in the same project when the order of the
4589         source dirs are not known.
4590         (Check_Ada_Name): Allow all identifiers that are not reserved words
4591         in Ada 95.
4592         Major update of the Project Manager and of the project aware tools,
4593         including gprmake, so that the same sources in the GNAT repository
4594         can be used by gprbuild.
4595         (Look_For_Sources): If the list of sources is empty, set the object
4596         directory of non extending project to nil.
4597         Change type of path name variables to be Path_Name_Type
4598         (Locate_Directory): Make sure that on Windows '/' is converted to '\',
4599         otherwise creating missing directories will fail.
4600
4601         * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb, 
4602         prj-part.ads, prj-part.adb:
4603         Major update of the Project Manager and of the project aware tools,
4604         including gprmake, so that the same sources in the GNAT repository
4605         can be used by gprbuild.
4606
4607         * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
4608         insensitive flag for attributes with optional index.
4609         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
4610         array attribute, put the index in lower case.
4611         (Parse_Variable_Reference): Allow the current project name to be used in
4612         the prefix of an attribute reference.
4613
4614         * prj-util.ads, prj-util.adb
4615         (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
4616         defaulted to False. When True, always check against indexes in lower
4617         case.
4618
4619         * snames.ads, snames.h, snames.adb: 
4620         Update Project Manager to new attribute names for gprbuild
4621         Allow all valid declarations in configuration project files
4622
4623 2007-08-14  Robert Dewar  <dewar@adacore.com>
4624             Ed Schonberg  <schonberg@adacore.com>
4625
4626         * opt.ads: Warning for non-local exception propagation now off by
4627         default
4628         New switch -gnatI to disable representation clauses
4629         Implement new pragma Implicit_Packing
4630
4631         * usage.adb: 
4632         Warning for non-local exception propagation now off by default
4633         Add warning for unchecked conversion of pointers wi different
4634         conventions.
4635         New switch -gnatI to disable representation clauses
4636
4637         * usage.adb: new switch -gnatyS
4638
4639         * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
4640         note that aggregates of anonymous array types are not flagged.
4641         -gnatwc now includes membership tests optimized away
4642         -gnatw.x warnings are now off by default
4643         Added conditional compilation Appendix
4644         Add documentation of -gnatI
4645         Add documentation for new -gnatyS style check
4646         Update documentation about SAL and auto-init on Windows.
4647
4648         * gnat_rm.texi: 
4649         Add documentation for pragma Check_Name and 'Enabled attribute
4650         Document that Eliminate on dispatching operation is ignored
4651         Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
4652         Document pragma Main
4653         Document pragma Implicit_Packing
4654
4655         * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
4656         different conventions
4657         New switch -gnatI to disable representation clauses
4658
4659         * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
4660         recognized, report the invalid characters including "-gnat" instead of
4661         just the first character in the switch.
4662         New switch -gnatI to disable representation clauses
4663         Set Warn_On_Object_Renames_Function true for -gnatg
4664
4665         * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
4666         Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
4667         Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
4668         to switch -aP (add directory to project search dir).
4669
4670         * par-prag.adb: Implement new pragma Implicit_Packing
4671
4672         * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
4673         type as having a non-standard representation, to force expansion on
4674         conversion to related types.
4675         (Analyze_Pragma): Warn on misspelled pragma
4676         (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
4677         Ensure consistent use of # in error messages
4678         Implement pragma Implicit_Packing
4679
4680 2007-08-14  Olivier Hainque  <hainque@adacore.com>
4681             Eric Botcazou  <ebotcazou@adacore.com>
4682
4683         * targtyps.c (get_target_maximum_default_alignment): New function.
4684         Maximum alignment
4685         that the compiler might choose by default for a type or object.
4686         (get_target_default_allocator_alignment): New function. Alignment known
4687         to be honored by the target default allocator.
4688         (get_target_maximum_allowed_alignment): New function. Maximum alignment
4689         we might accept for any type or object on the target.
4690         (get_target_maximum_alignment): Now synonym of maximum_default_alignment
4691
4692         * gigi.h (get_target_maximum_default_alignment): Declare new function.
4693         (get_target_default_allocator_alignment): Likewise.
4694         (get_target_maximum_allowed_alignment): Likewise.
4695
4696         PR ada/19037
4697         * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
4698         result of a function call, first try to use a stabilized reference for
4699         a constant renaming too.
4700         (validate_alignment): Use target_maximum_allowed_alignment instead of
4701         MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
4702         (gnat_to_gnu_entity): Use common nodes directly.
4703         (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
4704         alignment and size for the object.
4705         (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
4706         and N_Procedure_Call_Statement.
4707         (takes_address): Rename to lvalue_required_p, add third parameter
4708         'aliased' and adjust recursive calls.
4709         <N_Indexed_Component>: Update 'aliased' from the array type.
4710         <N_Selected_Component>: New case.
4711         <N_Object_Renaming_Declaration>: New Likewise.
4712         (Identifier_to_gnu): Adjust for above changes.
4713         (maybe_stabilize_reference) <CONST_DECL>: New case.
4714
4715         * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
4716         between type variants.
4717         (build_simple_component_ref): Likewise.
4718         (build_call_alloc_dealloc): Use target_default_allocator_alignment
4719         instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
4720         aligning type circuitry for allocations from the default storage pool.
4721         (build_allocator): Likewise.
4722         (build_simple_component_ref): Manually fold the reference for a
4723         constructor if the record type contains a template.
4724
4725         * utils.c (value_zerop): Delete.
4726         (gnat_init_decl_processing): Emit debug info for common types.
4727         (rest_of_record_type_compilation): If a union contains a field
4728         with a non-constant qualifier, treat it as variable-sized.
4729         (finish_record_type): Give the stub TYPE_DECL a name.
4730         (rest_of_record_type_compilation): Likewise.
4731         (convert) <CONSTRUCTOR>: New case.  Build a new constructor if
4732         types are equivalent array types.
4733         (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
4734         even if the type is not passed by reference.
4735         (static_ctors, static_dtors): Delete.
4736         (end_subprog_body): Do not record constructors and destructors.
4737         (build_global_cdtor): Delete.
4738         (gnat_write_global_declarations): Do not call build_global_cdtor.
4739
4740         * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
4741         -fRTS=rtp is specified.
4742         If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
4743         specified.
4744
4745         * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
4746         of the personality function with SJLJ exceptions.
4747
4748         * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
4749         the name of the personality function with SJLJ exceptions.
4750
4751 2007-08-14  Robert Dewar  <dewar@adacore.com>
4752             Ed Schonberg  <schonberg@adacore.com>
4753
4754         * par.ads, par.adb: Improve handling of extra right parens.
4755         (Par): Remove flag From_Limited_With_Clause.
4756
4757         * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
4758         Improve handling of extra right parens.
4759
4760 2007-08-14  Robert Dewar  <dewar@adacore.com>
4761
4762         * par-tchk.adb (TF_Semicolon): Improve error recovery
4763
4764 2007-08-14  Robert Dewar  <dewar@adacore.com>
4765             Ed Schonberg  <schonberg@adacore.com>
4766
4767         * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
4768         enumeration type, mark all literals as referenced.
4769         (Eval_Attribute, case 'Image): If the argument is an enumeration
4770         literal and names are available, constant-fold but mark nevertheless as
4771         non-static.
4772         Clean up function names.
4773         (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
4774         comment.
4775         (Requires_Simple_Name_Prefix): Removed.
4776
4777 2007-08-14  Robert Dewar  <dewar@adacore.com>
4778             Ed Schonberg  <schonberg@adacore.com>
4779
4780         * sem_ch11.adb: Improved warnings for unused variables
4781
4782         * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
4783         is a synchronized interface, the derived type is limited.
4784         (Analyze_Object_Declaration): Mark the potential coextensions in the
4785         definition and expression of an object declaration node.
4786         (Build_Derived_Type): For the completion of a private type declaration
4787         with a derived type declaration, chain the parent type's representation
4788         items to the last representation item of the derived type (not the
4789         first one) if they are not present already.
4790         (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
4791         object declaration of forward references to tags.
4792         (Access_Subprogram_Declaration): In Ada2005, anonymous access to
4793         subprogram types can appear as access discriminants of synchronized
4794         types.
4795         (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
4796         given in prefixed form as a selected component.
4797         (Process_Discriminants): If not all discriminants have defaults, place
4798         error message on a default that is present.
4799         (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
4800         extend a synchronized tagged type.
4801         Improved warnings for unused variables
4802         (Is_Visible_Component): Fix a visibility hole on a component inherited
4803         by a private extension when parent is itself declared as a private
4804         extension, and the derivation is in a child unit.
4805         (Find_Hidden_Interface): Move spec from the package body.
4806
4807 2007-08-14  Robert Dewar  <dewar@adacore.com>
4808             Ed Schonberg  <schonberg@adacore.com>
4809
4810         * sem_ch5.adb: Improve warnings on redundant assignments
4811
4812         * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
4813         parameter
4814         (Is_Synchronized_Tagged_Type): New subprogram that returns true
4815         in case of synchronized tagged types (AARM 3.9.4 (6/2)).
4816         (Safe_To_Capture_Value): Can now return True for constants, even if Cond
4817         is set to False. Improves handling of Known_[Not_]Null.
4818         (Wrong_Type): Special case address arithmetic attempt
4819         (Collect_Abstract_Interfaces): Add new formal to allow collecting
4820         abstract interfaces just using the partial view of private types.
4821         (Has_Abstract_Interfaces): Add new formal to allow checking types
4822         covering interfaces using the partial view of private types.
4823         (Is_Fully_Initialized_Type): Special VM case for uTag component. This
4824         component still needs to be defined in this case, but is never
4825         initialized as VMs are using other dispatching mechanisms.
4826         (Abstract_Interface_List): For a protected type, use base type to get
4827         proper declaration.
4828         Improve warnings on redundant assignments
4829         (Is_Variable): Handle properly an implicit dereference of a prefixed
4830         function call.
4831         (Build_Actual_Subtype): If this is an actual subtype for an
4832         unconstrained formal parameter, use the sloc of the body for the new
4833         declaration, to prevent anomalises in the debugger.
4834
4835 2007-08-14  Robert Dewar  <dewar@adacore.com>
4836
4837         * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
4838         dispatching operation
4839
4840 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4841             Gary Dismukes  <dismukes@adacore.com>
4842
4843         * exp_aggr.ads, 
4844         exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
4845         expanded aggregate code before allocator, and ahead of declaration for
4846         temporary, to prevent access before elaboration when the allocator is
4847         an actual for an access parameter.
4848         (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
4849         the TSD and the table of interfaces.
4850         (Convert_To_Assignments): Augment the test for delaying aggregate
4851         expansion for limited return statements to include the case of extended
4852         returns, to prevent creation of an unwanted transient scope.
4853         (Is_Static_Dispatch_Table_Aggregate): New subprogram.
4854         (Expand_Array_Aggregate): Handle aggregates associated with
4855         statically allocated dispatch tables.
4856         (Expand_Record_Aggregate): Handle aggregates associated with
4857         statically allocated dispatch tables.
4858         (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
4859         of anonymous access type.
4860
4861 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4862
4863         * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
4864         is a variable that renames a slice, use the variable itself in the
4865         expannsion when the renamed expression itself may be modified between
4866         the declaration of the renaming and the array assignment.
4867
4868 2007-08-14  Jerome Guitton  <guitton@adacore.com>
4869
4870         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, 
4871         s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, 
4872         s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
4873         New functions; dummy implementations.
4874
4875         * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
4876         functions, used to implement the multi-tasks mode routines on VxWorks.
4877
4878         * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
4879         New functions, thin
4880         binding to the VxWorks routines which have changed between VxWorks 5
4881         and 6.
4882         (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
4883         which are not callable from a RTP.
4884
4885         * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
4886         implemented for the multi-tasks mode on VxWorks 5 and 6.
4887
4888         * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
4889
4890         * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
4891         functions.
4892
4893 2007-08-14  Vincent Celier  <celier@adacore.com>
4894
4895         * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb, 
4896         gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
4897         mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb, 
4898         mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb, 
4899         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, 
4900         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
4901         mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
4902         procedure.
4903         (Major_Id_Name): New function.
4904         mlib-tgt.ads/mlib.tgt.adb:
4905         (Library_Major_Minor_Id_Supported): New function, default returns True
4906         Most mlib-tgt-*.adb that support shared libraries and symbolic links:
4907         (Build_Dynamic_Library): Add support for major/minor ids for shared libs
4908         Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
4909         Implementation of Library_Major_Minor_Id_Supported returns False
4910         clean.adb:
4911         (Clean_Library_Directory): If major/minor ids are supported, clean all
4912         library files.
4913         Major update of the Project Manager and of the project aware tools,
4914         including gprmake, so that the same sources in the GNAT repository
4915         can be used by gprbuild.
4916
4917 2007-08-14  Olivier Hainque  <hainque@adacore.com>
4918
4919         * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
4920         (GCC_ZCX_Support): Switch to True.
4921         
4922         * s-intman-solaris.adb (Notify_Exception): Call
4923         Adjust_Context_For_Raise before raising, as expected for signal
4924         handlers in general.
4925         
4926         * s-intman-posix.adb (Notify_Exception): Remove declaration of
4927         Adjust_Context_For_Raise, moved to the spec of this unit to be visible
4928         to other implementation bodies.
4929         
4930         * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
4931         be visible by multiple implementation bodies.
4932         
4933         * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
4934         only for conditions coming from hardware.
4935         [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
4936         adjustments to signal context prior to exception raise from signal
4937         handler.
4938         (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
4939         mode.
4940         Solaris section: (__gnat_adjust_context_for_raise): New function.
4941         Implementation of the machine context adjustments to perform prior to
4942         raise from a signal handler. Version for both sparc and x86.
4943         (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
4944         (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
4945         prior to raising as expected for any handler, before possible nested
4946         faults to make sure all the contexts in a chain have been adjusted by
4947         the time we propagate.
4948
4949 2007-08-14  Pascal Obry  <obry@adacore.com>
4950
4951         * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
4952         (SYSTEM_INFO): New record.
4953         (SetThreadIdealProcessor): New imported routine needed for supporting
4954         task_info pragma on Windows.
4955
4956         * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
4957         info can be applied to the current host.
4958         (Create_Task): Set the ideal processor if information is present.
4959
4960         * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
4961         a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
4962
4963 2007-08-14  Olivier Hainque  <hainque@adacore.com>
4964
4965         * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
4966         stack size and initial stack pointer value for a given task.
4967         (Enter_Task): Get the stack attributes of the task we are entering and
4968         let the stack checking engine know about them.
4969
4970         * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
4971         Let the stack-checking engine know about the initial sp value and stack
4972         size associated with the current task.
4973         (Set_Stack_Info): If a stack base has been notified for the current
4974         task, honor it. Fallback to the previous less accurate method otherwise.
4975
4976         * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
4977
4978 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4979
4980         * sem_ch10.adb: Create a limited view of an incomplete type, to make
4981         treatment of limited views uniform for all visible declarations in a
4982         limited_withed package.
4983         Set flag indicating that a subprogram body for a child unit has a
4984         generated spec.
4985         (Analyze_Compilation_Unit): If unit is a subprogram body that has no
4986         separate declaration, remove the unit name from visibility after
4987         compilation, so that environment is clean for subsequent compilations.
4988         (Install_Limited_Context_Clauses): Do not install a
4989         limited_private_with_clause unless the current unit is a body or a
4990         private child unit.
4991         (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
4992         in the same fashion.
4993         (Install_Limited_Withed_Unit): Do not install a limited with clause if
4994         it applies to the declaration of the current package body.
4995         (Remove_Private_With_Clauses): If there is a regular with_clause for
4996         the unit, delete Private_With_Clause from context, to prevent improper
4997         hiding when processing subsequent nested packages and instantiations.
4998
4999 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
5000
5001         * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
5002         dir/file, device:/dir/file, and device:drive_letter:/dir/file as
5003         representing absolute path names.
5004         __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
5005
5006         * cstreams.c (__gnat_full_name for VxWorks): Use
5007         __gnat_is_absolute_path to detect whether we need to add the current
5008         directory to normalize the path.
5009
5010 2007-08-14  Javier Miranda  <miranda@adacore.com>
5011
5012         * a-tags.ads, 
5013         a-tags.adb (Displace): Associate a message with the raised CE
5014         exception.
5015         (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
5016         To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
5017         To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
5018         spec.
5019         (Default_Prim_Op_Count): Removed.
5020         (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
5021         Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
5022         Remove pragma Inline_Always.
5023
5024         * rtsfind.ads (Default_Prim_Op_Count): Removed
5025         (Max_Predef_Prims): New entity
5026         (RE_Expanded_Name): Removed
5027         (RE_HT_Link): Removed
5028         (RE_Iface_Tag): Remmoved
5029         (RE_Ifaces_Table): Removed
5030         (RE_Interfaces_Array): Removed
5031         (RE_Interface_Data_Element): Removed
5032         (RE_Nb_Ifaces): Removed
5033         (RE_RC_Offset): Removed
5034         (RE_Static_Offset_To_Top): Removed
5035
5036         * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
5037         formal.
5038         (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
5039         Prim_Op_Count by Max_Predef_Prims.
5040
5041 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5042             Vincent Celier  <celier@adacore.com>
5043
5044         * binde.adb (Elab_All_Links): Remove unnecessary call to
5045         Generic_Separately_Compiled (if a unit satisfies this predicate, there
5046         won't be an associated Afile).
5047         (Elab_All_Links): Fail if a referenced unit cannot be found
5048
5049         * bindgen.adb: 
5050         Fix comments in bindgen regarding consistency checks done in Bcheck:
5051         the checks are made across units within a partition, not across several
5052         partitions.
5053         Fix generation of C binder file for VxWorks.
5054
5055         * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
5056         Generic_May_Lack_ALI, more descriptive of the current use of the
5057         predicate, and update documentation.
5058
5059         * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
5060         reorganization and documentation update for the case of predefined
5061         library generics (for which we do not reference an Afile).
5062
5063 2007-08-14  Robert Dewar  <dewar@adacore.com>
5064
5065         * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
5066         s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
5067         s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
5068         s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
5069         s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
5070         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
5071         s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
5072         s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
5073         exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
5074         s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
5075         s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
5076         a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
5077         s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
5078         g-altcon.adb: Minor reformatting
5079
5080         ada-tree.h: Delete empty line.
5081
5082         ali.ads: Minor reformatting
5083         Clarification of comments.
5084         Minor spelling correction
5085
5086         * exp_dbug.adb: Add Warnings Off to suppress new warning
5087
5088         * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
5089         formal
5090
5091         * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
5092         value
5093
5094         * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
5095
5096         * a-textio.ads: Reorder the standard input/output/error declarations
5097         for consistency.
5098
5099         * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
5100
5101         * par-ch2.adb: Recognize RM specially in errout
5102         Change 'R'M to RM in all error messages
5103
5104         * scng.adb: Recognize RM specially in errout
5105
5106         * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
5107         N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
5108
5109         * s-direio.adb: Add missing routine header box.
5110
5111         * sem_attr.ads: Add ??? comments
5112
5113         * sem_eval.adb: Recognize RM specially in errout
5114         Change 'R'M to RM in all error messages
5115
5116         * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
5117
5118         * s-tasinf.ads: Fix minor comment typo.
5119
5120         * a-cihama.adb: Minor comment addition
5121
5122         * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
5123         formal
5124
5125         * s-tasinf-tru64.ads: Fix minor comment typo.
5126
5127         * itypes.ads: Comment update.
5128
5129         * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
5130         anymore.
5131
5132         * argv.c: Added protection against null gnat_argv and gnat_envp.
5133
5134         * bcheck.adb (Check_Consistency): Use correct markup character ({) in
5135         warning message when Tolerate_Consistency_Errors is True.
5136
5137         * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
5138         Any_Id, as this subprogram is only applicable to *type* entities (it
5139         sets RM_Size). Instead initialize just Esize and Alignment.
5140
5141 2007-08-14  Bob Duff  <duff@adacore.com>
5142
5143         * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, 
5144         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
5145         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads, 
5146         a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
5147         a-coorse.ads (Next): Applied pragma Inline.
5148         Make all Containers packages Remote_Types (unless they are already
5149         Pure).
5150         (Previous): applied pragma Inline
5151         (Elements_Type): is now a record instead of an array
5152
5153 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5154
5155         * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
5156         of Set_Item.
5157         (Set_Item): When the new item is an element of the currently allocated
5158         table passed by reference, save a copy on the stack if we're going
5159         to reallocate. Also, in Table.Set_Item, make sure we test the proper
5160         variable to determine whether to call Set_Last.
5161
5162         * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
5163         symbols-vms.adb, symbols-processing-vms-alpha.adb,
5164         symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
5165         some occurrences of the pattern
5166            T.Increment_Last;
5167            T.Table (T.Last) := Value;
5168         with a cleaner call to
5169            T.Append (Value);
5170
5171 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5172             Gary Dismukes  <dismukes@adacore.com>
5173             Thomas Quinot  <quinot@adacore.com>
5174
5175         * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
5176         derived type with interface progenitors use the analyzed formal as the
5177         parent of the actual, to create renamings for all the inherited
5178         operations in Derive_Subprograms.
5179         (Collect_Previous_Instances): new procedure within of
5180         Load_Parent_Of_Generic, to instantiate all bodies in the compilation
5181         unit being loaded, to ensure that the generation of global symbols is
5182         consistent in different compilation modes.
5183         (Is_Tagged_Ancestor): New function testing the ancestor relation that
5184         takes progenitor types into account.
5185         (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
5186         traversing over the primitives of the formal and actual types to locate
5187         any abstract subprograms of the actual type that correspond to a
5188         nonabstract subprogram of the formal type's ancestor type(s), and issue
5189         an error if such is found.
5190         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
5191         Instantiate_Package_Body, Instantiate_Subprogram_Body):
5192         Remove bogus guard around calls to Inherit_Context.
5193         (Reset_Entity): If the entity is the selector of a selected component
5194         that denotes a named number, propagate constant-folding to the generic
5195         template only if the named number is global to the generic unit.
5196         (Set_Instance_Env): Only reset the compilation switches when compiling
5197         a predefined or internal unit.
5198
5199 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5200
5201         * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
5202         parameter to determine whether operation applies to the prefix.
5203         (Complete_Object_Operation): If actual has an access type and
5204         controlling formal is not an in_parameter, reject the actual if it is
5205         an access_to_constant type.
5206         (Try_Primitive_Operation): If the type of the prefix is a formal tagged
5207         type, the candidate operations are found in the scope of declaration of
5208         the type, because the type has no primitive subprograms.
5209         (Analyze_Selected_Component): If prefix is class-wide, and root type is
5210         a private extension, only examine visible components before trying to
5211         analyze as a prefixed call.
5212         Change Entity_List to Type_To_Use, for better readability.
5213         (Has_Fixed_Op): Use base type when checking whether the type of an
5214         operator has a user-defined multiplication/division
5215         (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
5216         user-defined operators are available for fixed-point types.
5217
5218 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5219             Ed Schonberg  <schonberg@adacore.com>
5220
5221         * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
5222         formal At_Any_Place indicating, when True, that we want to test for
5223         availability of the stream attribute at any place (as opposed to the
5224         current visibility context only).
5225         (Missing_Read_Write_Attributes): A stream attribute is missing for the
5226         purpose of enforcing E.2.2(8) only if it is not available at any place.
5227         Take into account the Ada2005 pragma Has_Preelaborable_Initialization
5228         when checking the legality of an extension aggregate in a preelaborable
5229         package. Treat the literal null as a valid default expression in a
5230         component declaration for a type with preelaborable initialization.
5231         A limited interface is a legal progenitor for the designated type of a
5232         remote access to class-wide type.
5233
5234 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5235             Ed Schonberg  <schonberg@adacore.com>
5236
5237         * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
5238         reference): Use correct entity as denoted entity for the selector of
5239         the rewritten node.
5240         (Find_Direct_Name): Add comment about Generate_Reference incorrectly
5241         setting the Referenced_As_LHS flag for entities that are implicitly
5242         dereferenced.
5243         (Find_Type): If the type is an internally generated incomplete type,
5244         mark the full view as referenced, to prevent spurious warnings.
5245         (Find_Selected_Component, Has_Components): Handle properly non-limited
5246         views that are themselves incomplete types.
5247         Handle interfaces visible through limited-with clauses.
5248         (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
5249         subprogram generic actual for which we have generated a renaming.
5250         Warn when the renaming introduces a homonym of
5251         the renamed entity, and the renamed entity is directly visible.
5252
5253 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5254             Hristian Kirtchev  <kirtchev@adacore.com>
5255
5256         * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
5257         appear in the subtree to the current allocator if it is not a static
5258         coextension.
5259         (Resolve_Allocator): Perform cleanup if resolution has determined that
5260         the allocator is not a coextension.
5261         (Resolve): Skip an interpretation hidden by an abstract operator only
5262         when the type of the interpretation matches that of the context.
5263         (Resolve): When looping through all possible interpretations of a node,
5264         do not consider those that are hidden by abstract operators.
5265         (Resolve_Actuals): When verifying that an access to class-wide object
5266         is an actual  for a controlling formal, ignore anonymous access to
5267         subprograms whose return type is an access to class_wide type.
5268         (Resolve_Slice): If the prefix of the slice is a selected component
5269         whose type depends on discriminants, build its actual subtype before
5270         applying range checks on the bounds of the slice.
5271         (Valid_Conversion): In an instance or inlined body, compare root types,
5272         to prevent anomalies between private and public views.
5273         (Resolve): Improve error message for ambiguous fixed multiplication
5274         expressions that involve universal_fixed multiplying operations.
5275
5276 2007-08-14  Javier Miranda  <miranda@adacore.com>
5277             Hristian Kirtchev  <kirtchev@adacore.com>
5278
5279         * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
5280         location to allow the correct generation of errors in case of
5281         restrictions applied to the expanded code.
5282         (Expand_Entry_Barrier): Remove all generated renamings for a barrier
5283         function if the condition does not reference them.
5284         (Expand_Entry_Body_Declarations): Mark the index constant as having a
5285         valid value.
5286
5287 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5288             Pablo Oliveira  <oliveira@adacore.com>
5289
5290         * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
5291         typecode parameters for a union (in a variant record), remove
5292         extraneous layer of Any wrapping for member label.
5293         (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
5294         elabration statements, register the package with the name server
5295         at the beginning, not at the end, of the elaboration statements so
5296         that they can create remote access to subprogram values that designate
5297         remote subprograms from the package.
5298
5299 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
5300
5301         * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
5302         values to compute the number of seconds since the Unix Epoc in order to
5303         account for Daylight Savings Time. Perform special processing for dates
5304         that are earlier than the Unix Epoc to obtain a negative number.
5305
5306 2007-08-14  Emmanuel Briot  <briot@adacore.com>
5307
5308         * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
5309         switches.
5310
5311 2007-08-14  Eric Botcazou  <ebotcazou@adacore.com>
5312
5313         * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
5314         binder-generated file is not in Ada.
5315         Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
5316         recorded in the ALI file.
5317         Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
5318
5319 2007-08-14  Vincent Celier  <celier@adacore.com>
5320
5321         * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
5322         (Output_Source): Do nothing if parameter is No_Sdep_Id
5323
5324         * make.adb (Gnatmake): Do not rebuild an archive simply because a
5325         shared library it imports has a later time stamp.
5326         (Check): Resolve the symbolic links in the path name of the object
5327         directory.
5328         Check that the ALI file is in the correct object directory
5329         Check if a file name does not correspond to the mapping of units
5330         to file names.
5331         (Display_Version): New procedure
5332         (Initialize): Process switches --version and --help
5333         Use type Path_Name_Type for path name
5334
5335 2007-08-14  Paul Hilfinger  <hilfinger@adacore.com>
5336
5337         * impunit.adb: Re-organize System.Random_Numbers and
5338         GNAT.Random_Numbers and add to builds.
5339
5340         * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
5341
5342         * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
5343
5344         * a-assert.ads, a-assert.adb: New files.
5345
5346 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
5347
5348         * layout.adb (Layout_Type): In the case of access-to-subprogram types,
5349         if AAMP_On_Target is True, then the size of the type encompasses two
5350         addresses (a static link and a subprogram address), except in the case
5351         of library-level access types.
5352
5353 2007-08-14  Vincent Celier  <celier@adacore.com>
5354
5355         * output.ads, output.adb (Write_Eol): Remove trailing spaces before
5356         writing the line.
5357         (Write_Eol_Keep_Blanks): New procedure to write a line, including
5358         possible trailing spaces.
5359         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
5360
5361 2007-08-14  Javier Miranda  <miranda@adacore.com>
5362
5363         * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
5364         null-excluding access types.
5365
5366 2007-08-14  Javier Miranda  <miranda@adacore.com>
5367
5368         * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
5369         that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
5370         of private types add missing check on matching interfaces in the
5371         partial and full declarations.
5372         (Analyze_Protected_Type): Code cleanup.
5373         (Analyze_Task_Type): Code cleanup.
5374
5375 2007-08-14  Javier Miranda  <miranda@adacore.com>
5376
5377         * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
5378         generated interface thunk.
5379
5380 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5381
5382         * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
5383         obsolescent warning on application of 'Class to an incomplete type.
5384
5385         * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
5386         prevent obsolescent warning on application of 'Class to an incomplete
5387         type.
5388
5389 2007-08-14  Pascal Obry  <obry@adacore.com>
5390
5391         * s-fileio.adb (Is_Open): Add check for usability of the underlying
5392         file stream.
5393
5394 2007-08-14  Cyrille Comar  <comar@adacore.com>
5395
5396         * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
5397         since it is potentially used in cases implying double finalization of
5398         the same object.
5399
5400 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
5401
5402         * s-tasini.adb (Get_Stack_Info): Move this function to
5403         System.Soft_Links.Tasking because it is common to the full and the
5404         restricted run times.
5405         (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
5406         in SSL.Tasking.Init_Tasking_Soft_Links.
5407
5408         * s-solita.adb (Get_Stack_Info): Function moved from
5409         System.Tasking.Initialization because it is common to the full and the
5410         restricted run times.
5411         (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
5412
5413 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
5414
5415         * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
5416         s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
5417         (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
5418         parameter.
5419
5420         * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
5421         guard to 12K.
5422
5423 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
5424
5425         * s-veboop.adb (SU): New named number initialized to
5426         System.Storage_Unit.
5427         (True_Val): The initialization expression is revised to use SU (=
5428         Storage_Unit) rather than assuming 8 for the component size of an
5429         unpacked Boolean array.
5430
5431 2007-08-14  Tristan Gingold  <gingold@adacore.com>
5432
5433         * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
5434
5435         * tb-ivms.c: New file.
5436
5437         * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
5438
5439 2007-08-14  Geert Bosch  <bosch@adacore.com>
5440
5441         * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
5442         s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
5443         Add required linker pragmas for automatically linking with the gnalasup
5444         linear algebra support library, and the systems math library.
5445         Rename cdot to cdotu and zdot to zdotu.
5446         Update header comment to describe purpose of package.
5447
5448 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5449
5450         * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
5451         an explicitly specified Associated_Final_Chain, use that list.
5452         (Expand_N_Package_Body): Build dispatch tables of library level tagged
5453         types.
5454         (Expand_N_Package_Declaration): Build dispatch tables of library level
5455         tagged types. Minor code cleanup.
5456
5457 2007-08-14  Vincent Celier  <celier@adacore.com>
5458
5459         * gnatchop.adb (Terminate_Program): Remove exception and use
5460         Types.Terminate_Program instead.
5461
5462         * osint.ads, osint.adb (Current_Exit_Status): New global variable
5463         (Find_Program_Name): Added protection against empty name.
5464         (OS_Exit_Through_Exception): New procedure
5465
5466         * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
5467         (OS_Exit_Default): New procedure that contains the previous
5468         implementation of procedure OS_Exit.
5469         (Final_Value): Remove obsolete Interix stuff.
5470
5471 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5472
5473         * g-socket.ads: Reorganize example code so that it also works on
5474         Windows XP.
5475
5476 2007-08-14  Tristan Gingold  <gingold@adacore.com>
5477
5478         * g-trasym.ads: AIX now supports symbolic backtraces.
5479
5480 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5481
5482         * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
5483         units being loaded to detect circularities. A circularity may be
5484         present even if the current chain of pending units to load starts from
5485         a limited_with_clause.
5486
5487         * lib-load.ads: Change profile of Load_Unit to use a with_clause
5488         rather than a boolean flag, in order to detect circularities in
5489         with_clauses.
5490
5491         * par-load.adb: Use current with_clause in calls to Load_Unit, rather
5492         than propagating the From_Limited_With flag, in order to handle
5493         properly circularities involving with_clauses.
5494
5495 2007-08-14  Nicolas Setton  <setton@adacore.com>
5496
5497         * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
5498         warnings.
5499
5500 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
5501
5502         * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
5503         to build for libgnala.
5504         libgnat: Add rules to build libgnala.a
5505         (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
5506         target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
5507         Add s-osinte-vxworks-kernel.adb to the target pairs of the
5508         kernel run-time lib for VxWorks 6, which would provide a different
5509         implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
5510         x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
5511         running ZCX by default.
5512         Add g-sttsne-locking to LynxOS version.
5513         Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
5514         On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
5515
5516         * system-darwin-x86.ads: New file.
5517
5518         * Make-lang.in: Delete files before copying onto them, so if they are
5519         read-only, the copy won't fail.
5520         Update dependencies
5521
5522 2007-08-14  Pascal Obry  <obry@adacore.com>
5523
5524         * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
5525         naming scheme.
5526
5527 2007-08-14  Vincent Celier  <celier@adacore.com>
5528
5529         * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
5530         (Gcc): Initialize Gcc_Name at the first call
5531
5532 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
5533
5534         * sem_ch7.adb (Analyze_Package_Specification): Do not install private
5535         with_clauses of the enclosing unit when analyzing the package
5536         specification of a nested instance.
5537
5538 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
5539
5540         * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
5541         (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
5542         Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
5543         layout of N_Allocator.
5544
5545 2007-08-14  Thomas Quinot  <quinot@adacore.com>
5546
5547         * rtsfind.adb (Check_RPC): Add PCS version check.
5548
5549         * gnatvsn.ads, gnatvsn.adb: Add PCS version.
5550         (Gnat_Free_Software): New function.
5551
5552         * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
5553         the PCS_Version value from s-parint, used to check that it is consistent
5554         with what exp_dist expects.
5555
5556         * s-parint.ads (PCS_Version): New entity for checking consistency
5557         between exp_dist and PCS.
5558
5559         * gen-soccon.c: (SO_REUSEPORT): New constant.
5560
5561 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
5562
5563         * a-calfor.adb (Image (Duration; Boolean)): Change type of local
5564         variable Sub_Second to Duration in order to accomodate a larger range
5565         of arithmetic operations.
5566
5567 2007-08-14  Bob Duff  <duff@adacore.com>
5568
5569         * g-sttsne-locking.ads: Move comments from spec to body.
5570         * g-sttsne-locking.adb: Move comments from spec to body.
5571         * g-sttsne-vxworks.ads: Removed.
5572         * g-sttsne-vxworks.adb: Removed.
5573
5574 2007-08-11  Ian Lance Taylor  <iant@google.com>
5575
5576         * misc.c (gnat_get_alias_set): Change return type to
5577         alias_set_type.
5578
5579 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5580
5581         * decl.c, utils2.c: Fix whitespace in last change.
5582
5583 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5584
5585         * decl.c (compare_field_bitpos): Constify.
5586         * utils2.c (compare_elmt_bitpos): Likewise.
5587
5588 2007-07-27  Aurelien Jarno  <aurelien@aurel32.net>
5589
5590         * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by 
5591         anonymous access type.
5592         (pthread_sigmask): Now take an access sigset_t.
5593
5594 2007-07-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
5595
5596         * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
5597         
5598 2007-06-21  Eric Botcazou  <ebotcazou@adacore.com>
5599
5600         PR tree-optimization/25737
5601         * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
5602
5603 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5604
5605         * trans.c (Attribute_to_gnu): When subtracting an
5606         offset from a pointer, use POINTER_PLUS_EXPR with
5607         NEGATE_EXPR instead of MINUS_EXPR.
5608         (gnat_to_gnu): Likewise.
5609         * utils.c (convert): When converting between
5610         thin pointers, use POINTER_PLUS_EXPR and sizetype
5611         for the offset.
5612         * utils2.c (known_alignment): POINTER_PLUS_EXPR
5613         have the same semantics as PLUS_EXPR for alignment.
5614         (build_binary_op): Add support for the semantics of
5615         POINTER_PLUS_EXPR's operands.
5616         When adding an offset to a pointer, use POINTER_PLUS_EXPR.
5617
5618 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
5619
5620         * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
5621         of get_signed_or_unsigned_type.
5622         * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
5623
5624 2007-06-11  Bob Duff  <duff@adacore.com>
5625             Thomas Quinot  <quinot@adacore.com>
5626
5627         * g-stsifd-sockets.adb (Create): Work around strange behavior of
5628         'bind' on windows that causes 'connect' to fail intermittently, by
5629         retrying the 'bind'.
5630         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
5631
5632 2007-06-10  Duncan Sands  <baldrick@free.fr>
5633
5634         * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
5635         than to void, for the fields when making a new fat pointer type.
5636         (gnat_substitute_in_type): Now substitute_in_type.
5637         * gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
5638         * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
5639         * utils.c (update_pointer_to): Update fat pointers by updating the
5640         dummy node pointers used for the fields.
5641
5642 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5643             Bob Duff  <duff@adacore.com>
5644
5645         * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
5646         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, 
5647         g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
5648         constant Thread_Blocking_IO, always True by default, set False
5649         on a per-runtime basis.
5650         (Need_Netdb_Buffer): New constant.
5651
5652         * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
5653         g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
5654         files.
5655
5656         * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
5657         g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
5658         Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
5659         child package Task_Safe_NetDB
5660         (Host_Error_Messages): Add stub body.
5661         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
5662
5663         * g-soccon-mingw.ads: Add Windows-specific constants.
5664         (Need_Netdb_Buffer): New constant.
5665         (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
5666         wrapper and import inet_addr(3) from the standard sockets library
5667         directly instead.
5668         (In_Addr): Add alignment clause.
5669         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
5670
5671 2007-06-06  Robert Dewar  <dewar@adacore.com>
5672
5673         * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
5674         s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
5675         s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
5676         s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
5677         s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
5678         s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
5679         a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
5680         a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
5681         a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
5682         g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
5683         g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
5684         i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
5685         s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
5686         s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
5687         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
5688         s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
5689         s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
5690         s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
5691         s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
5692         s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
5693         s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
5694         s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
5695         s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
5696         s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
5697         s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
5698         s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
5699         s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
5700         s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
5701         s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
5702         s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
5703         s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
5704         a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
5705         Unchecked_* by Ada.Unchecked_*
5706
5707 2007-06-06  Robert Dewar  <dewar@adacore.com>
5708
5709         * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
5710         s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
5711         g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
5712         output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
5713         g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
5714         a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
5715
5716         * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
5717         s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
5718         s-tasloc.adb, s-tasloc.ads: New files.
5719
5720 2007-06-06  Bob Duff  <duff@adacore.com>
5721
5722         * g-expect-vms.adb: 
5723         (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
5724         * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
5725         (Send_Signal, Close): Raise Invalid_Process if the process id is
5726         invalid.
5727         (Pattern_Matcher_Access): Is now a general access type to be able to
5728         use aliased string.
5729
5730 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5731             Arnaud Charlet  <charlet@adacore.com>
5732
5733         * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
5734         (SIGEMT is now used instead of SIGTERM on AIX).
5735
5736         * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
5737         (Time_Slice_Supported): Set to True.
5738         Use SIGEMT instead of SIGTERM as SIGADAABORT.
5739
5740 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
5741
5742         * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
5743         (Time, Time)): Use To_Relative_Time rather than manual calculation to
5744         express the bounds of Duration as Time. Raise Time_Error when the
5745         result is greater or equal to the higher bound of Duration (on the
5746         margin case).
5747         ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
5748         Ada_High_And_Leaps.
5749         ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
5750         Ada_High_And_Leaps.
5751         ("-" (Time, Time)): Reorder code.
5752         (All_Leap_Seconds): Removed.
5753         (Arithmetic_Operations.Add): Remove sign related kludge.
5754         (Arithmetic_Operations.Difference): Control the leaps seconds processing
5755         with flag Leap_Support.
5756         (Arithmetic_Operations.Subtract): Remove sign related kludge.
5757         (Check_Within_Time_Bounds): New procedure.
5758         (Clock): Control the leap seconds processing with flag Leap_Support.
5759         (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
5760         (Formatting_Operations.Split): Control the leap seconds processing with
5761         flag Leap_Support.
5762         (Formatting_Operations.Time_Of): Control the leaps seconds processing
5763         with flag Leap_Support. Adjust the year, month and day (if applicable)
5764         when the value of day seconds designates a new day.
5765         (Split): Use parameter associations for better readability. Integrate
5766         flag Is_Ada_05.
5767         (Time_Of): Use parameter associations for better readability. Integrate
5768         flag Is_Ada_05.
5769
5770         * a-calfor.adb (Split): Use parameter associations for better
5771         readability. Integrate flag Is_Ada_05.
5772         (Time_Of): Remove flag Leap_Checks. Use parameter associations for
5773         better readability. Integrate flag Is_Ada_05.
5774
5775 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5776
5777         * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb, 
5778         s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb, 
5779         s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb, 
5780         s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads, 
5781         s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb, 
5782         s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb, 
5783         s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads, 
5784         s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads, 
5785         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads, 
5786         s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
5787         s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
5788         time when entering this routine to detect a backward clock setting
5789         (manual setting or DST adjustment), to avoid waiting for a longer delay
5790         than needed.
5791         (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
5792         Remove handling of deferred priority change, and replace by setting the
5793         task priority directly, as required by AI-188.
5794         Update comments.
5795         (Max_Task_Image_Length): New constant.
5796         Replace Warnings (Off) by Unreferenced pragma, cleaner.
5797         (Dynamic_Priority_Support): Removed, no longer needed.
5798         (Poll_Base_Priority_Change): Ditto.
5799         (Set_Ceiling): Add this procedure to change the ceiling priority
5800         associated to a lock. This is a dummy implementation because dynamic
5801         priority ceilings are not supported by the underlying system.
5802
5803         * a-dynpri.adb (Set_Priority): Take into account case where Target is
5804         accepting a RV with its priority boosted.
5805         Remove handling of deferred priority change, and replace by setting the
5806         task priority directly, as required by AI-188.
5807
5808         * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
5809         Succeeded = True.
5810         Remove handling of deferred priority change, and replace by setting the
5811         task priority directly, as required by AI-188.
5812         (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
5813         of Self_Id earlier.
5814
5815         * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
5816         (Poll_Base_Priority_Change): Removed.
5817         Code clean up: use SSL.Current_Target_Exception.
5818
5819         * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
5820         to run as this is a potentially dispatching point.
5821         (Call_Synchronous): Use Local_Defer_Abort.
5822         (Callable): Relax assertion.
5823         (Selective_Wait): Relax assertion in case abort is not allowed.
5824         Remove handling of deferred priority change, and replace by setting the
5825         task priority directly, as required by AI-188.
5826
5827         * s-tasuti.adb (Make_Passive): Adjust assertions.
5828         Remove handling of deferred priority change, and replace by setting the
5829         task priority directly, as required by AI-188.
5830
5831 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5832
5833         * system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
5834         system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
5835         system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads, 
5836         system-vxworks-mips.ads, system-vxworks-alpha.ads, 
5837         system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads, 
5838         system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads, 
5839         system-interix.ads, system-linux-hppa.ads, system-tru64.ads, 
5840         system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads, 
5841         system-solaris-sparcv9.ads, system-vms.ads, system.ads,
5842         system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
5843         system-linux-ia64.ads: Document mapping between Ada and OS priorities.
5844         This patch changes the largest non-binary modulus from 2**31-1 to
5845         2**32-1.
5846         (Compiler_System_Version): Removed, no longer used.
5847         Clean up system files by removing flags only used on a single target.
5848         Also remove obsolete flags, only used during bootstrap from system.ads
5849         (Address): Add a pragma Preelaborable_Initialization.
5850
5851         * system-aix.ads:  Ditto.
5852         (GCC_ZCX_Support): Set to true.
5853         Update priority range on AIX and map Ada priorities to target
5854         priorities appropriately for different scheduling policies.
5855
5856         * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
5857
5858 2007-06-06  Vincent Celier  <celier@adacore.com>
5859
5860         * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
5861         mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
5862
5863         * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb, 
5864         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb, 
5865         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, 
5866         mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, 
5867         mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
5868         MLib.Tgt, containing the default versions of the exported subprograms.
5869         For each platform, create a specific version of the body of new child
5870         package MLib.Tgt.Specific that contains only the body of subprograms
5871         that are different from the default.
5872         (Archive_Builder_Append_Options): New function.
5873
5874 2007-06-06  Matthew Gingell  <gingell@adacore.com>
5875
5876         * s-osinte-aix.adb: Map Ada priorities to target priorities
5877         appropriately for different scheduling policies.
5878
5879 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5880
5881         * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
5882         its C counterpart.
5883         Remove references to Unchecked_Conversion, and use Ada.xxx instead.
5884         Replace Unchecked_Conversion by Ada.Unchecked_Conversion. 
5885
5886 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
5887
5888         * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
5889         Noop on VMS, added for interface commonality.
5890
5891 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
5892             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5893             Olivier Hainque  <hainque@adacore.com>
5894
5895         * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
5896         renamed expression of a full renaming at toplevel.
5897         (gnat_to_gnu_entity, case object): If not defining, do not look inside
5898         the values the constant is initialized to if it is an N_Allocator.
5899         (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
5900         TYPE_SIZE_UNIT of inner types after the stride is elaborated.
5901         (make_aligning_type): Accept an extra ROOM argument for storage to be
5902         made available before the aligned field, and an extra BASE_ALIGN
5903         argument for callers to pass the alignment guaranteed to be honored for
5904         the whole aligning object. Avoid call to finish_record_type, which only
5905         interferes with the sizes we want to set.
5906         (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
5907         make_aligning_type for super-aligned objects on stack.
5908         (components_to_record): Pass the adjusted size of the type when creating
5909         fields in the qualified union for the variant part.
5910         (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
5911         (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
5912         packed array type.
5913         (maybe_pad_type): Set TYPE_USER_ALIGN.
5914         (make_aligning_type): Likewise.
5915         ALIGN argument is unsigned int.
5916         (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
5917         (gnat_to_gnu_param): Likewise, for parameters.
5918         (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
5919         if it is constant and stems from a function call.
5920         (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
5921         of the record is specified.  Adjust accordingly.
5922         (adjust_packed): New static function.
5923         (gnat_to_gnu_field): Use it to adjust the packedness setting.
5924         (components_to_record): Likewise.
5925         (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
5926         side-effects if the object is deemed constant.
5927         (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
5928         type instead of merely finalizing it.  Tidy.
5929         <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
5930         <E_Access_Type>: Likewise.
5931         (defer_debug_incomplete_list): Rename to defer_finalize_list.
5932         (defer_debug_level): Delete.
5933         (gnat_to_gnu_entity) <debug_deferred>: Likewise
5934         <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
5935         type.
5936         <E_Record_Type>: Do not explicitly defer finalizing the type.
5937         Adjust for write_record_type_debug_info renaming.
5938         <E_Subprogram_Type>: Likewise.
5939         Finalize deferred types right after deferred incomplete types are
5940         expanded.
5941         (rest_of_type_decl_compilation): New global function.
5942         (components_to_record): Rename defer_debug parameter to do_not_finalize.
5943         (components_to_record): Propagate the packedness to the fields of the
5944         qualified union type if there is a variant part.
5945         (gnat_to_gnu_entity) <E_Array_Type>: Use new function
5946         instead of inline code to adjust the XUT field offsets.
5947         (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
5948         <E_Record_Subtype>: Do not let finish_record_type compute the sizes
5949         and write the debug info if the type derives from a discriminated one.
5950         (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
5951         <E_Array_Subtype>: Likewise.
5952         <E_String_Literal_Subtype>: Likewise.
5953         (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
5954         an alignment clause.
5955         (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
5956         before giving warning.
5957         (prepend_one_attribute_to): New function, helper to prepend an attribute
5958         to an attribute list.
5959         (gnat_to_gnu_entity) <E_Procedure>: Use it.
5960         (prepend_attributes): Likewise.
5961         (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
5962         <E_Array_Type>: Declare the padding type for the element type, if any.
5963         <E_Array_Subtype>: Likewise.
5964         (defer_limited_with): New variable.
5965         (Gigi_Equivalent_Type): New function.
5966         (gnat_to_gnu_entity): Use it at start and use result throughout.
5967         (gnat_to_gnu_entity, case E_Access_Type): Rework to use
5968         Gigi_Equivalent_Type, support Limited_With, allow two levels of
5969         indirection, precompute if unconstrained array to simplify logic, and
5970         use defer_limited_with to defer elaboration of some types from limited
5971         with.
5972         (finalize_from_with_types): New function.
5973
5974 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
5975             Eric Botcazou  <ebotcazou@adacore.com>
5976             Tristan Gingold  <gingold@adacore.com>
5977             Olivier Hainque  <hainque@adacore.com>
5978
5979         * trans.c (Identifier_to_gnu): Change test for deferred constant by
5980         adding guard that the entity is an E_Constant before testing presence
5981         of Full_view (and remove unnecessary test that entity is not a type).
5982         For a CONST_DECL used by reference, manually retrieve
5983         the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
5984         (struct language_function): Move from utils.c to here.
5985         (struct parm_attr): New structure.
5986         (parm_attr, parm_attr vector, parm_attr GC vector): New types.
5987         (f_parm_attr_cache): New macro.
5988         (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
5989         expressions for the 'First, 'Last and 'Length attributes of the
5990         unconstrained array IN parameters.
5991         (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
5992         Allocate the information structure for the function earlier, as well
5993         as the language-specific part.
5994         If the parameter attributes cache has been populated, evaluate the
5995         cached expressions on entry.
5996         (takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
5997         N_Procedure_Call_Statement and N_Indexed_Component.
5998         (Pragma_to_gnu): Translate inspection_point to an asm statement
5999         containaing a comment and a reference to the object (either its address
6000         for BLKmode or its value).
6001         (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
6002         to go to DECL_INITIAL. Together with the size constraint relaxation
6003         in create_var_decl, enlarges the set of situations in which an
6004         identifier may be used as an initializer without implying elaboration
6005         code.
6006         (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
6007         DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
6008         node.
6009         (maybe_stabilize_reference): Remove lvalues_only parameter.
6010         (gnat_stabilize_reference): Adjust for above change.
6011         (gnat_to_gnu): Do not set location information on the result
6012         if it is a reference.
6013         (add_cleanup): Add gnat_node parameter and set the location of the
6014         cleanup to it.
6015         (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
6016         (Exception_Handler_to_gnu_zcx): Likewise.
6017         (gigi): Remove the cgraph node if the elaboration procedure is empty.
6018         (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
6019         the former right after the latter.
6020         (start_stmt_group): Make global.
6021         (end_stmt_group): Likewise.
6022         (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
6023         vars.
6024         (gnu_program_error_label_stack): Likewise.
6025         (gigi): Initialize them.
6026         (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
6027         (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
6028         New cases.
6029         (push_exception_label_stack): New function.
6030         (takes_address): New function.
6031
6032         * utils.c (struct language_function): Move to trans.c from here.
6033         (unchecked_convert): Do not wrap up integer constants in
6034         VIEW_CONVERT_EXPRs.
6035         (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
6036         the latter for aggregate types, unexpected by later passes, and relax an
6037         arbitrary size constraint on the former.
6038         (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
6039         to compare the sizes.
6040         (convert_vms_descriptor): When converting to a fat pointer type, be
6041         prepared for a S descriptor at runtime in spite of a SB specification.
6042         (shift_unc_components_for_thin_pointers): New function.
6043         (write_record_type_debug_info): For variable-sized fields, cap the
6044         alignment of the pointer to the computed alignment.
6045         (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
6046         If REP_LEVEL is 2, do not compute the sizes.
6047         (build_vms_descriptor): Adjust for new prototype of finish_record_type.
6048         (build_unc_object_type): Likewise.
6049         (declare_debug_type): New function.
6050
6051         * ada-tree.def: USE_STMT: removed (not emitted anymore).
6052
6053         * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
6054         no statement is expandable anymore.
6055         (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
6056         (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
6057         when the user requested it explicitely.
6058         (gnat_post_options): By default, set flag_eliminate_unused_debug_types
6059         to 0 for Ada.
6060         (get_alias_set): Return alias set 0 for a type if
6061         TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
6062
6063         * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
6064         (DECL_FUNCTION_STUB): New accessor macro.
6065         (SET_DECL_FUNCTION_STUB): New setter macro.
6066
6067         * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
6068
6069         * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
6070         declarations.
6071
6072 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
6073
6074         * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
6075         Rename to Abort_Task_Interrupt to be able to keep the same interface
6076         as the rest of the targets.
6077
6078         * s-osinte-vxworks.ads s-osinte-vxworks.adb
6079         (To_VxWorks_Priority): Remove explicit "in" mode indicator
6080
6081         * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
6082         New files.
6083
6084 2007-06-06  Robert Dewar  <dewar@adacore.com>
6085
6086         * a-chahan.ads: Remove obsolescent pragmas
6087
6088         * a-chlat1.ads: Minor reformatting
6089
6090 2007-06-06  Robert Dewar  <dewar@adacore.com>
6091
6092         * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
6093         for Errout
6094
6095         * errout.adb: New Finalize/Compilation_Errors/Output_Messages
6096         implementation
6097
6098         * errout.ads (Finalize): Changed interface
6099         (Output_Messages): New procedure
6100         (Compilation_Errors): New Interface
6101
6102         * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
6103         Finalize/Output_Messages interface for Errout
6104         (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
6105         Errout.
6106
6107 2007-06-06  Thomas Quinot  <quinot@adacore.com>
6108             Olivier Hainque  <hainque@adacore.com>
6109             Robert Dewar  <dewar@adacore.com>
6110
6111         * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
6112         check.
6113         (Raise_Current_Excep): Call Debug_Raise_Exception just before
6114         propagation starts, to let debuggers know about the event in a reliable
6115         fashion.
6116         (Local_Raise): Moved to System.Exceptions
6117         More convenient to have this as a separate unit
6118
6119         * s-except.adb, s-except.ads: New files.
6120
6121         * a-exextr.adb (Unhandled_Exception): Delete - replaced by
6122         Debug_Unhandled_Exception in System.Exceptions where it belongs
6123         together with a couple of other debug helpers.
6124         (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
6125         the former Unhandled_Exception.
6126
6127         * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
6128         (Warn_No_Exception_Propagation): New procedure
6129         (Warn_If_No_Propagation): Rewritten for new warning generation
6130         (Expand_Exception_Handlers): New warning generation
6131         (Expand_N_Raise_xxx_Error): Rewritten for new warnings
6132         (Add_Exception_Label): Use Special_Exception_Package_Used for test
6133         instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
6134         (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
6135         even if restriction is set (makes life easier in Check_Returns)
6136         (Expand_Local_Exception_Handlers): Follow renamed entity chain when
6137         checking exception identities.
6138         (Expand_Local_Exception_Handlers): Do not optimize when all others case
6139         (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
6140         block for handler (used by Check_Returns)
6141         (Expand_Local_Exception_Handlers): Local_Raise now takes an address
6142         (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
6143         remove all exception handlers when optimizing local raise statements.
6144         (Find_Local_Handler): Use Get_Renamed_Entity
6145         (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
6146         marked analyzed after expanding exception handlers, do not generate
6147         redundant cleanup actions, because they have been constructed already.
6148
6149 2007-06-06  Thomas Quinot  <quinot@adacore.com>
6150
6151         * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
6152         presence of this categorization pragma is mandated by the language.
6153         (Limited_Controlled): Add missing pragma Preelaborable_Initialization
6154         for this type.
6155
6156 2007-06-06  Vincent Celier  <celier@adacore.com>
6157             Robert Dewar  <dewar@adacore.com>
6158
6159         * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb, 
6160         butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, 
6161         err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads, 
6162         fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads, 
6163         lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads, 
6164         makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb, 
6165         par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb, 
6166         prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads, 
6167         prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb, 
6168         sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb, 
6169         uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
6170         ali.ads, ali.adb: 
6171         Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
6172         package Namet. Make File_Name_Type and Unit_Name_Type types derived from
6173         Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
6174         Use variables of types File_Name_Type and Unit_Name_Type in error
6175         messages.
6176         (Get_Name): Add parameter Ignore_Special, and set it reading file name
6177         (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
6178         here.
6179         Define flags Flag217-Flag230 with associated subprograms
6180         (Flag_Word5): New record type.
6181         (Flag_Word5_Ptr): New access type.
6182         (To_Flag_Word5): New unchecked conversion.
6183         (To_Flag_Word5_Ptr): Likewise.
6184         (Flag216): New function.
6185         (Set_Flag216): New procedure.
6186
6187 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
6188
6189         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
6190         instead of 'Size.
6191
6192         * a-stwifi.ads, a-stzfix.ads: Minor reformatting
6193
6194 2007-06-06  Javier Miranda  <miranda@adacore.com>
6195
6196         * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
6197         the package.
6198         (Object_Specific_Data_Array): This is now internal to the package.
6199         (Object_Specific_Data): This is now internal to the package.
6200         (Select_Specific_Data_Element): This is now internal to the package.
6201         (Select_Specific_Data_Array): This is now internal to the package.
6202         (Select_Specific_Data): This is now internal to the package.
6203         (Offset_To_Top_Function_Ptr): This is now public.
6204         (To_Offset_To_Top_Function_Ptr): Removed.
6205         (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
6206          local to subprogram Offset_To_Top.
6207         (Predefined_DT): Removed.
6208         (Typeinfo_Ptr): Removed.
6209         (OSD): This function is now internal to this package.
6210         (SSD): This function is now internal to this package.
6211         (DT): New function that displaces the pointer to the table of primitives
6212          to get access to the enclosing wrapper record.
6213         (IW_Membership): Code cleanup.
6214         (Offset_To_Top): Code cleanup.
6215         (Predefined_DT): Removed.
6216         (Register_Interface_Tag): Removed.
6217         (Set_Interface_Table): Removed.
6218         (Set_Offset_Index): Removed.
6219         (Set_Offset_To_Top): Code cleanup.
6220         (Set_OSD): Removed.
6221         (Set_Signature): Removed.
6222         (Set_SSD): Removed.
6223         (Set_Tagged_Kind): Removed.
6224         (Typeinfo_Ptr): Removed.
6225         (TSD): Removed.
6226         (Displace): Add missing check on null actual.
6227
6228         * exp_disp.ads, exp_disp.adb
6229         (Select_Expansion_Utilities): Removed.
6230         (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
6231         (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
6232         the interface requires a new parameter.
6233         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
6234         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
6235         calls to subprograms Build_T, Build_S, etc. by the corresponding code.
6236         Done to remove package Select_Expansion_Utilities.
6237         (Make_DT): New implementation for statically allocated dispatch tables.
6238         (Make_Secondary_DT): Moved to the scope of Make_DT.
6239         (Register_Primitive): Code cleanup plus incoporate the use of the new
6240         function DT_Address_Attribute.
6241         (Expand_Interface_Thunk): The profile of this subprogram has been
6242         changed to return the Thunk_Id and the corresponding code.
6243         (Fill_DT_Entry): Removed. Its functionality is now provided by
6244         subprogram Register_Primitive.
6245         (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
6246         subprogram Register_Primitive.
6247         (Register_Primitive): New subprogram that incorporates the previous
6248         functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
6249         (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
6250         was only required to call Make_DT_Access_Action, which is now removed.
6251         (Ada_Actions): Removed
6252         (Action_Is_Proc): Removed
6253         (Action_Nb_Arg): Removed
6254         Replace all the calls to Make_DT_Access_Action by direct calls to
6255         Make_Procedure_Call_Statement or Make_Function_Call.
6256         (Set_DTC_Entity_Value): New subprogram.
6257         (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
6258         (Expand_Interface_Thunk): Add missing support for primitives that are
6259         functions with a controlling result (case in which there is no need
6260         to generate the thunk).
6261
6262         * exp_atag.ads, exp_atag.adb
6263         (Build_DT): New subprogram that displaces the pointer to reference the
6264         base of the wrapper record.
6265         (Build_Typeinfo_Offset): Removed.
6266         (RTE_Tag_Node): Removed.
6267         (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
6268         (Build_Get_RC_Offset): Removed.
6269         (Build_Inherit_Predefined_Prims): Removed.
6270         (Build_Inherit_TSD: Removed.
6271         (Build_New_TSD): Removed.
6272         (Build_Set_External_Tag): Removed.
6273         (Build_Set_Predefined_Prim_Op_Address): Add documentation.
6274         (Build_Set_Prim_Op_Address): Add documentation.
6275         (Build_Set_TSD): Removed.
6276
6277         * rtsfind.ads, rtsfind.adb
6278         (Load_Fail): If load fails and we are not in configurable run-time
6279         mode, then raise Unrecoverable_Error.
6280         (Text_IO_Kludge): Generate an error message if a run-time library is
6281         not available in a given run-time (ie. zfp run-time).
6282         (RTE_Record_Component): Add code to check that the component we search
6283         for is not found in two records in the given run-time package.
6284         (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
6285         (RE_DT_Predef_Prims_Offset): New entity
6286         (RE_Static_Offset_To_Top): New entity
6287         (RE_HT_Link): New entity.
6288         (System_Address_Image): Addition of this run-time package.
6289         (RE_Address_Image): New entity.
6290         (RE_Abstract_Interface): Removed.
6291         (RE_Default_Prim_Op_Count): Removed.
6292         (RE_DT_Entry_Size): Removed.
6293         (RE_DT_Min_Prologue_Size): Removed.
6294         (RE_DT_Prologue_Size): Removed.
6295         (RE_Ifaces_Table_Ptr): Removed.
6296         (RE_Interface_Data_Ptr): Removed.
6297         (RE_Type_Specific_Data): Removed.
6298         (RE_Primary_DT): Removed.
6299         (RE_Register_Interface_Tag): Removed.
6300         (RE_Set_Offset_Index): Removed.
6301         (RE_Set_OSD): Removed.
6302         (RE_Set_SSD): Removed.
6303         (RE_Set_Signature): Removed.
6304         (RE_Set_Tagged_Kind): Removed.
6305         (RE_Address_Array): New entity.
6306         (RE_DT): New entity.
6307         (RE_Iface_Tag): New entity.
6308         (RE_Interfaces_Table): New entity.
6309         (RE_No_Dispatch_Table): New entity.
6310         (RE_NDT_Prims_Ptr): New entity.
6311         (RE_NDT_TSD): New entity.
6312         (RE_Num_Prims): New entity.
6313         (RE_Offset_To_Top_Function_Ptr): New entity.
6314         (RE_OSD_Table): New entity.
6315         (RE_OSD_Num_Prims): New entity.
6316         (RE_Predef_Prims): New entity
6317         (RE_Predef_Prims_Table_Ptr): New entity.
6318         (RE_Primary_DT): New entity.
6319         (RE_Signature): New entity.
6320         (RE_SSD): New entity.
6321         (RE_TSD): New entity.
6322         (RE_Type_Specific_Data): New entity.
6323         (RE_Tag_Kind): New entity.
6324
6325 2007-06-06  Thomas Quinot  <quinot@adacore.com>
6326
6327         * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
6328         C imported variable.
6329         (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
6330         on entry.
6331
6332 2007-06-06  Robert Dewar  <dewar@adacore.com>
6333
6334         * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
6335         character
6336
6337 2007-06-06  Vincent Celier  <celier@adacore.com>
6338
6339         * a-tifiio.adb (Put, internal): For negative numbers, check that there
6340         is room for at least one digit and the minus sign.
6341         (Put.Put_Character): Never put a character outside of the range of
6342         string To.
6343
6344 2007-06-06  Olivier Hainque  <hainque@adacore.com>
6345             Eric Botcazou  <ebotcazou@adacore.com>
6346
6347         * utils2.c (build_allocator): Provide the extra arguments to
6348         make_aligning_type for super-aligned objects allocated from the default
6349         pool. Leave enough room for a pointer before the aligning field, and
6350         store the system's allocator return value there.
6351         (build_call_alloc_dealloc): When releasing a super-aligned object,
6352         retrieve the system's allocator return value from where build_allocator
6353         has stored it, just ahead of the adjusted address we are passed.
6354         (build_call_raise): Handle properly the generation of line numbers when
6355         the node is marked No_Location.
6356         (compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
6357         by using DECL_UID on ties.
6358         (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
6359         main variant.
6360         (build_call_raise): Handle converting exception into goto; support new
6361         argument KIND.
6362         (build_component_ref): Add new arg to build_call_raise.
6363
6364 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
6365
6366         * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
6367         "." in the case of nnn.xxx when nnn terminates with an underscore.
6368         Parse the remaining "#" or ":" in the case of nnn#.xxx#
6369
6370 2007-06-06  Robert Dewar  <dewar@adacore.com>
6371
6372         * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
6373
6374 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
6375             Vincent Celier  <celier@adacore.com>
6376             Robert Dewar  <dewar@adacore.com>
6377
6378         * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
6379         needed.
6380         (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
6381         ((destructor)) for adafinal, even when switch -a is used.
6382         Do not issue pragma Linker_Destructor for adafinal when switch -a is
6383         used.
6384         (Gen_Object_Files_Options): Add formatting of Linker Options, when
6385         Output_Linker_Option_List is set. Suppress this formatting when
6386         Zero_Formatting is set.
6387         Add case for CLI_Target.
6388         (System_Restrictions_Used): New flag, used to avoid generating with of
6389         System_Restrictions and initialization of the data unless there is
6390         some use of System.Restrictions in the partition.
6391         (Check_System_Restrictions_Used): New procedure
6392
6393         * s-stalib.adb: Remove with of System.Restrictions. No longer needed
6394         since we only with this unit in the binder file if it is used elsewhere
6395         in the partition.
6396
6397 2007-06-06  Vincent Celier  <celier@adacore.com>
6398
6399         * bindusg.adb: Add line for @<response file>
6400         Add lines for new switches -R and -Z
6401
6402         * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
6403         hierarchy in the list of files of the closure when -R is used
6404         (Gnatbind): Accept arguments starting with '@' to indicate response
6405         files and take the arguments from the response files.
6406         If List_Closure is set, display the referenced files
6407
6408 2007-06-06  Javier Miranda  <miranda@adacore.com>
6409             Robert Dewar  <dewar@adacore.com>
6410             Ed Schonberg  <schonberg@adacore.com>
6411
6412         * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
6413         which the address-clause is applied to in-mode actuals (allowed by
6414         13.1(22)).
6415         (Apply_Discriminant_Check): Do not generate a check if the type is
6416         constrained by a current instance.
6417         (Activate_Division_Check): New procedure
6418         (Activate_Overflow_Check): New procedure
6419         (Activate_Range_Check): New procedure
6420         Call these new Activate procedures instead of setting flags directly
6421         (Apply_Array_Size_Check): Removed, no longer needed.
6422         Code clean up: remove obsolete code related to GCC 2.
6423         (Get_E_Length): Protect against bomb in case scope is standard
6424         (Selected_Range_Checks): If the node to be checked is a conversion to
6425         an unconstrained array type, and the expression is a slice, use the
6426         bounds of the slice to construct the required constraint checks.
6427         Improve NOT NULL error messages
6428         (Apply_Constraint_Check): If the context is a null-excluding access
6429         type, diagnose properly the literal null.
6430
6431 2007-06-06  Pascal Obry  <obry@adacore.com>
6432
6433         * clean.adb (Clean_Archive): Use untouched casing for the archive name
6434         and the corresponding .deps file.
6435         (Clean_Interface_Copy_Directory): Use untouched casing for the library
6436         src directory. Minor code-clean-up. Use untouched casing for files
6437         read into the library src dir.
6438         (Clean_Library_Directory): Idem.
6439         (Parse_Cmd_Line): Accept new switch -aP
6440
6441 2007-06-06  Javier Miranda  <miranda@adacore.com>
6442             Ed Schonberg  <schonberg@adacore.com>
6443             Robert Dewar  <dewar@adacore.com>
6444             Eric Botcazou  <ebotcazou@adacore.com>
6445             Arnaud Charlet  <charlet@adacore.com>
6446
6447         * einfo.ads, einfo.adb (Available_View): New synthesized attribute
6448         applicable to types that have the With_Type flag set. Returns the
6449         non-limited view of the type, if available, otherwise the type itself.
6450         For class-wide types, there is no direct link in the tree, so we have
6451         to retrieve the class-wide type of the non-limited view of the Etype.
6452         New attributes Static_Initialization and Static_Elaboration_Desired.
6453         Remove the pragma Thread_Body, and the associated flag
6454         Is_Thread_Body in entities, and all related code.
6455         (Suppress_Value_Tracking_On_Call): New flag
6456         E_Exception has Esize and Alignment fields
6457         (Universal_Aliasing): New function.
6458         (Set_Universal_Aliasing): New procedure.
6459         (Write_Entity_Flags): Deal with Universal_Aliasing flag.
6460         (Check_Nested_Access): New procedure.
6461         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
6462         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
6463         (Related_Interface): New attribute. Present in dispatch table pointer
6464         components of records. Set to point to the entity of the corresponding
6465         interface type.
6466         (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
6467         (Original_Access_Type): Remove, not needed.
6468         (Root_Type): Handle properly subtypes of class-wide-types.
6469         Update comments.
6470
6471         * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
6472         class-wide types visible through limited-with clauses.
6473         (Try_Primitive_Operation): When examining all primitive operations of a
6474         tagged type, do not consider subprograms labeled as hidden unless they
6475         belong to a private generic type with a tagged parent.
6476         (Try_Object_Operation): Extensive rewriting, to handle properly various
6477         overloading cases, when several ancestors may have class-wide operations
6478         that are possible candidates, and when the overloaded functions return
6479         array types and have defaulted parameters so that the call may be
6480         interpreted as an indexing.
6481         (Analyze_Allocator): Remove Mark_Allocator and its invocation.
6482         (Process_Function_Call): use Next, rather than Next_Actual, to analyze
6483         successive actuals before analyzing the call itself.
6484         (Try_Primitive_Operation): A primitive operation is compatible with the
6485         prefix if the prefix has a synchronized type and the type of the formal
6486         is its corresponding record, as can be the case when the primitive
6487         operation is declared outside of the body of the type.
6488         (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
6489         perform homonym traversal, looking for class-wide operation matches
6490         (formerly done in statements of Try_Class_Wide_Operation). Matches on
6491         access parameters are now restricted to anonymous access types.
6492         (Mark_Allocator): An allocator with a discriminant association parent is
6493         a coextension.
6494         (Try_One_Prefix_Interpretation): If the type of the object is
6495         incomplete, as can be happen when it is a limited view obtained through
6496         a limited_with_clause, the selected component is not part of a prefixed
6497         call.
6498         (Complete_Object_Operation): Diagnose properly an object that is not
6499         aliased when the corresponding controlling formal is an access
6500         parameter.
6501         (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
6502         ambiguous calls in prefixed notation, where two primitives differ only
6503         in that the controlling argument of one is an access parameter.
6504
6505         * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
6506         whether a function that returns an unconstrained type can be inlined.
6507         (Process_Formals): Diagnose properly the illegal use of an incomplete
6508         type in the profile of an access_to_subprogram declaration.
6509         (Check_Synchronized_Overriding): Nothing check for concurrent types, the
6510         operations are attached to the corresponding record.
6511         (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
6512         When processing a primitive of a concurrent type which implements an
6513         interface change the type of all controlling formals to that of the
6514         corresponding record type.
6515         (Check_Synchronized_Overriding): Relax the conditional logic when trying
6516         to determine the tagged type to which a primitive belongs.
6517         (Check_Conventions): Capture condition to ignore a primitive operation
6518         (which is shared between the loop in Check_Conventions and the one in
6519         Check_Convention) in a new local function Skip_Check.
6520         (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
6521         confusion with Check_Conventions' own Prim_Op local variable.
6522         (Create_Extra_Formals): Test for a tagged result type rather than a
6523         controlling result when determining whether to add a BIP_Alloc_Form
6524         formal and a BIP_Final_List formal to the function.
6525         (Check_Conformance); For parameters that are anonymous access types,
6526         subtype conformance requires that the not null and the constant
6527         indicators must match
6528         (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
6529         to retrieve the appropriate type when processing a concurrent type
6530         declared within a generic. Minor comment reformatting. Change invocation
6531         of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
6532         mitive.
6533         (Analyze_Subprogram_Body): If the return type of a function is an
6534         anonymous access to the limited view of a class-wide type, and the
6535         non-limited view of the type is available, update the type of the
6536         function so that code can be generated.
6537         (Process_Formals): In case of access-subtype itype whose designated
6538         type is also an itype (situation that happens now with access to
6539         subprograms) we mark the access-type itype with the Has_Delayed_Freeze
6540         attribute to avoid backend problems.
6541         (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
6542         init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
6543         anonymous types' designated types are same before testing
6544         Subtypes_Statically_Match.
6545         (Create_Extra_Formals): Test for a named access parameter that is a
6546         controlling formal as an additional condition for adding an
6547         accessibility level formal. This can occur in the subp type created for
6548         dispatching calls in Expand_Dispatching_Call, and allows calling
6549         Create_Extra_Formals from that procedure rather than special-casing the
6550         extra formals there.
6551         (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
6552         when the function has a controlling result.
6553         (Check_Returns): Add much more knowledge of the optimization of local
6554         raise statements to gotos, to retain proper warnings in this case.
6555         (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
6556         nodes when looking for last statement.
6557
6558         * sem_type.ads, sem_type.adb (Specific_Type): Add support for
6559         class-wide types visible through limited with clauses.
6560         (Add_One_Interp): If the operands are anonymous access types, the
6561         predefined operator on universal_access is immediately visibles
6562         (Find_Unique_Type): Handle anonymous access to subprogram types just as
6563         other anonymous access types.
6564         (Disambiguate): Take into account CIL convention.
6565         (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
6566
6567 2007-06-06  Robert Dewar  <dewar@adacore.com>
6568
6569         * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
6570         sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
6571         elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
6572         Fix lower bound of tables.
6573         Add rep clauses.
6574
6575         * nlists.adb: Ditto.
6576         (Prev_Node, Next_Node): Change index type to Int so that it properly
6577         covers the range First_Node_Id - 1 up.
6578
6579 2007-06-06  Javier Miranda  <miranda@adacore.com>
6580             Ed Schonberg  <schonberg@adacore.com>
6581             Bob Duff  <duff@adacore.com>
6582             Hristian Kirtchev  <kirtchev@adacore.com>
6583
6584         * exp_aggr.ads, exp_aggr.adb: 
6585         (Build_Record_Aggr_Code): Add missing initialization of secondary tags
6586         in extension aggregates.
6587         (Flatten): Other conditions being met, an aggregate is static if the
6588         low bound given by component associations is different from the low
6589         bound of the base index type.
6590         (Packed_Array_Aggregate_Handled): If the component type is itself a
6591         packed array or record, the front-end must expand into assignments.
6592         (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
6593         Init_Pr, instead of Ancestor_Is_Expression.
6594         (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
6595         coextension chain root, either generate a list controller or use the
6596         already existing one.
6597         (Static_Array_Aggregate): New procedure to construct a positional
6598         aggregate that can be handled by the backend, when all bounds and
6599         components are compile-time known constants.
6600         (Expand_Record_Aggregate): Force conversion of aggregates of tagged
6601         types covering interface types into assignments.
6602         (Replace_Type): move to Build_Record_Aggr_Code.
6603         (Expand_Record_Aggr_Code): if the target of the aggregate is an
6604         interface type, convert to the definite type of the aggregate itself,
6605         so that needed components are visible.
6606         (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
6607         components and the context is an extended return statement do not
6608         create a transient block for it, to prevent premature finalization
6609         before the return is executed.
6610         (Gen_Assign): Do not generate a call to deep adjust routine if the
6611         component type is itself an array of controlled (sub)-components
6612         initialized with an inner aggregate.
6613         (Component_Check): New name for Static_Check. This name is now more
6614         appropriate, and documentation is added which was missing.
6615         (Component_Check): Add test for bit aligned component value
6616         (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
6617         Tagged_Comps, name is more appropriate given added function below.
6618         (Component_Not_OK_For_Backend): Check for bit aligned component ref.
6619
6620 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
6621             Javier Miranda  <miranda@adacore.com>
6622             Robert Dewar  <dewar@adacore.com>
6623
6624         * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
6625         Terminated: Add unchecked type conversion from System.Address to
6626         System.Tasking.Task_Id when calling the predefined primitive
6627         _disp_get_task_id.
6628         Disable new Ada 05 accessibility check for JVM.NET targets, which
6629         cannot be implemented in a practical way.
6630         (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
6631         the sources always references the tag of the actual object. Therefore,
6632         if 'Tag is applied in the sources to class-wide interface objects we
6633         generate code that displaces "this" to reference the base of the object.
6634         (Expand_N_Attribute_Reference, case Size): Return specified size if
6635         known to front end.
6636         (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
6637         has code that displaces the pointer of the object to manage interface
6638         types. However this code must not be executed when the prefix is a
6639         subprogram. This bug caused the wrong expansion of the internally
6640         generated assignment that fills the dispatch table when the primitive
6641         is a function returning a class-wide interface type.
6642         (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
6643         Set_Attribute_Name for Name_Unaligned_Valid.
6644
6645 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6646             Gary Dismukes  <dismukes@adacore.com>
6647
6648         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
6649         If the initialization is the equivalent aggregate of the initialization
6650         procedure of the type, do not remove it.
6651         (Expand_N_Attribute_Definition_Clause): Exclude access variables
6652         initialized to null from having their expression reset to empty and
6653         note this exception in the comment.
6654
6655 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
6656             Robert Dewar  <dewar@adacore.com>
6657             Ed Schonberg  <schonberg@adacore.com>
6658             Gary Dismukes  <dismukes@adacore.com>
6659
6660         * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
6661         Add "with" and "use" clauses for Sem_Attr.
6662         (Expand_Current_Value): Do not replace occurences of attribute
6663         references where the prefix must be a simple name.
6664
6665         * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
6666         Namet. Add new arrays Attribute_Name_Modifies_Prefix and
6667         Attribute_Requires_Simple_Name_Prefix.
6668         (Name_Modifies_Prefix): Body of new function.
6669         (Requires_Simple_Name_Prefix): Body of new function.
6670         (Resolve_Attribute, case Access): Improve error message for case of
6671         mismatched conventions.
6672         (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
6673         incomplete type.
6674         (Analyze_Attribute, case 'Access): If the type of the prefix is a
6675         constrained subtype for a nominal unconstrained type, use its base type
6676         to check for conformance with the context.
6677         (Resolve_Attribute): Remove test of the access type being associated
6678         with a return statement from condition for performing accessibility
6679         checks on access attributes, since this case is now captured by
6680         Is_Local_Anonymous_Access.
6681         (Analyze_Access_Attribute): Set Address_Taken on entity
6682         (Analyze_Attribute, case Address): Set Address_Taken on entity
6683         (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
6684         validating an access attribute whose prefix is a current instance.
6685         (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
6686         applied to dispatching operations, if freezing is required then we set
6687         the attribute Has_Delayed_Freeze in the prefix's entity.
6688         (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
6689         current scope if access of local subprogram taken
6690         (Analyze_Access_Attribute): Check legality of self-reference even if the
6691         expression comes from source, as when a single component association in
6692         an aggregate has a box association.
6693         (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
6694         the prefix if it is a protected operation and the attribute is
6695         Unrestricted_Access.
6696         (Resolve_Attribute, case 'Access): Set the Etype of the attribute
6697         reference to the base type of the context, to force a constraint check
6698         when the context is an access subtype with an explicit constraint.
6699         (Analyze_Attribute, case 'Class): If the prefix is an interface and the
6700         node is rewritten as an interface conversion. leave unanalyzed after
6701         resolution, to ensure that type checking against the context will take
6702         place.
6703
6704 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6705             Javier Miranda  <miranda@adacore.com>
6706             Robert Dewar  <dewar@adacore.com>
6707
6708         * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
6709         wrapper when the full view of the controlling type of an inherited
6710         function that dispatches on result implements interfaces.
6711         (Expand_N_Object_Declaration): In cases where the type of the
6712         declaration is anonymous access, create finalization list for it.
6713         (Expand_N_Object_Declaration): Generate a persistent_bss directive only
6714         if the object has no explicit initialization, to match description of
6715         functionality of pragam Persistent_BSS.
6716         (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
6717         new function to build static aggregates, to replace initialization call
6718         when static initialization is desired.
6719         (Freeze_Type): Generate a list controller for an access type whenever
6720         its designated type has controlled anonymous access discriminants.
6721         (Build_Equivalent_Aggregate): New procedure to compute a static
6722         aggregate to be used as default initialization for composite types,
6723         instead of a generating a call to the initialization procedure for the
6724         type.
6725         (Build_Initialization_Call): When available, replace a call to the
6726         initialization procedure with a copy of the equivalent static aggregate
6727         for the type.
6728         (Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
6729         declarations for objects of a class-wide interface type, rather than
6730         just identifiers, to prevent visibility problems.
6731         (Expand_N_Object_Declaration): When expanding the declaration for an
6732         object of a class-wide interface type, preserve the homonym chain of
6733         the original entity before exchanging it with that of the generated
6734         renaming declaration.
6735         (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
6736         active, because there is no way to handle the exception.
6737         (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
6738         to do a minimum decoration of the Access_Disp_Table list.
6739         (Expand_Record_Controller): Avoid the addition of the controller between
6740         the component containing the tag of a secondary dispatch table and its
6741         adjacent component that stores the offset to the base of the object.
6742         This latter component is only generated when the parent type has
6743         discriminants ---documented in Add_Interface_Tag_Components).
6744         (Apply_Array_Size_Check): Removed, no longer needed.
6745         (Expand_N_Full_Type_Declaration): If the type has anonymous access
6746         components, create a Master_Entity for it only if it contains tasks.
6747         (Build_Init_Procedure): Suppress the tag assignment compiling under
6748         no run-time mode.
6749         (Freeze_Record_Type): Remove code associated with creation of dispatch
6750         table.
6751         (Init_Secondary_Tags): Update type of actuals when generating calls to
6752         Ada.Tags.Set_Offset_To_Top
6753         (Stream_Operation_OK): Disable use of streams compiling under no
6754         run-time mode
6755         (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
6756         if Has_Init_Expression set.
6757         (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
6758         Register_Primitive, which provides the same functionality.
6759         (Requires_Init_Proc): Return false in case of interface types.
6760         (Add_Secondary_Tables): Use the new attribute Related_Interface to
6761         cleanup the code.
6762         (Predefined_Primitive_Freeze): Do not assume that an internal entity
6763         is always associated with a predefined primitive because the internal
6764         entities associated with interface types are not predefined primitives.
6765         Therefore, the call to Is_Internal is replaced by a call to the
6766         function Is_Predefined_Dispatching_Operation.
6767         (Make_Eq_If): When generating the list of comparisons for the
6768         components of a given variant, omit the controller component that is
6769         present if the variant has controlled components.
6770
6771 2007-06-06  Javier Miranda  <miranda@adacore.com>
6772             Hristian Kirtchev  <kirtchev@adacore.com>
6773             Bob Duff  <duff@adacore.com>
6774
6775         * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
6776         handle the creation of finalization lists and calls for nested
6777         coextensions when the root of the chains is part of a return statement.
6778         (Inside_A_Return_Statement): New function inside Complete_Coextension_
6779         Finalization.
6780         (Expand_Record_Equality): Skip components that are interface types.
6781         (Displace_Allocator_Pointer): Add missing support for interface subtypes
6782         (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
6783         with Rewrite_Coextension. Change the condition for detecting coextension
6784         root nodes.
6785         (Is_Local_Access_Discriminant): Removed.
6786         (Rewrite_Coextension): New routine which rewrites a static coextension
6787         as a temporary and uses its unrestricted access in the construction of
6788         the outer object.
6789         (Complete_Coextension_Finalization): New routine. Generate finalization
6790         attachment calls to all delayed coextensions.
6791         (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
6792         the allocator is not a coextension itself and has delayed coextensions.
6793         If the current allocator is controlled, but also a coextension, delay
6794         the generation of the finalization attachment call.
6795         Rename local variable "Node" to "Nod" in order to avoid confusion with
6796         "Elists.Node".
6797         (Expand_Allocator_Expression): Call Adjust for initialized allocators of
6798         limited types that are not inherently limited. Such an allocator is
6799         illegal, but is generated by the expander for a return statement, to
6800         copy the result onto the secondary stack. This is the only case where a
6801         limited object can be copied. Generate code to displace the pointer
6802         to the object if the qualified expression is a class-wide interface
6803         object. Such displacement was missing and hence the copy of the object
6804         was wrong.
6805         (Apply_Accessibility_Check): Handle allocated objects initialized in
6806         place.
6807         (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
6808         and Expand_Allocator_Expression. Allocating class-wide interface objects
6809         this routine displaces the pointer to the allocated object to reference
6810         the component referencing the corresponding secondary dispatch table.
6811         Expand_Allocator_Expression): Add missing support to allocate class-wide
6812         interface objects initialized with a qualified expression.
6813         (Get_Allocator_Final_List): Test for an anonymous access type that is a
6814         function result type, and use the finalization list associated with the
6815         function scope in that case (such an anonymous type should not be
6816         treated like an access parameter's type).
6817
6818 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6819             Gary Dismukes  <dismukes@adacore.com>
6820             Javier Miranda  <miranda@adacore.com>
6821
6822         * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
6823         controlled type, use Make_Handler_For_Ctrl_Operation to construct the
6824         required exception handler.
6825         (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
6826         properly the case of a function whose return type is a limited
6827         class-wide interface type. Modify the code of the accessibility
6828         check to handle class-wide interface objects. In this case we need to
6829         displace "this" to reference the primary dispatch table to get access
6830         to the TSD of the object (to evaluate its accessibility level).
6831         (Expand_N_Extended_Return_Statement): Test for a tagged result type
6832         rather than a controlling result as one of the conditions for
6833         generating tests of the implicit BIP_Alloc_Form formal. The
6834         initialization assignment is also handled according to whether the
6835         result is tagged instead of controlling.
6836         In the case where the init assignment is inserted in the "then" part of
6837         the allocation conditional, rewrite the target to be a dereference of
6838         the implicit BIP_Object_Access formal.
6839         If the returned value is unconstrained and created on the secondary
6840         stack, mark the enclosing block and function so that the secondary
6841         stack is not reclaimed on return.
6842         Treat returns from functions with controlling results similarly to
6843         returns from functions with unconstrained result subtypes.
6844         If the object returned is unconstrained, and an allocator must be
6845         created for it, analyze the allocator once the block for the extended
6846         return is installed, to ensure that finalizable components
6847         of the expression use the proper finalization list. Guard the call to
6848         Move_Final_List with a check that there is something to finalize.
6849         (Make_Tag_Ctrl_Assignment): Use "old" handling
6850         of controlled type assignment for virtual machines, since new code uses
6851         unsupported features (such as direct access to bytes in memory).
6852
6853 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
6854             Ed Schonberg  <schonberg@adacore.com>
6855
6856         * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
6857         accessibility actual, check for the case of an aliased object that has
6858         been rewritten as an Access attribute, and assign Prev to Prev_Orig so
6859         we fall into processing for the attribute rather than the name of the
6860         object.
6861         (Expand_Inline_Call): If an actual is a literal, and the corresponding
6862         formal has its address taken in the body, create a temporary to capture
6863         value.  If the return type is a limited interface, do not treat the
6864         return value as Controlled.
6865         (Is_In_Place_Function):  If the return type is a limited interface,
6866         treat as returning in place. The actual returned object may not always
6867         be limited, but the caller has to assume that it is returned in place.
6868         (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
6869         context of an allocator, use the correct finalization chain (that is,
6870         the chain belonging to the access type, rather than the chain belonging
6871         to the current scope).
6872         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
6873         result type rather than a controlling result as a precondition for
6874         adding an allocation form actual to a build-in-place call.
6875         (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
6876         (Freeze_Subprogram): Code cleanup. Remove all the code that register the
6877         primitive in the dispatch tables. This work is now done by Make_DT when
6878         the type is frozen.
6879         (Register_Predefined_DT_Entry): Removed.
6880         (Add_Return): If end label is not present, use sloc of last statement
6881         for generated return statement in procedure, for better gdb behavior
6882         on expanded code.
6883         (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
6884         object address nodes to ensure proper processing by routines like
6885         Insert_After*.
6886         (Expand_Call): Fix generation of validity check for parameter
6887         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
6888         the allocation form parameter if the result subtype is constrained,
6889         except when the function has a controlling result.
6890         (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
6891         rather than Is_Controlled and Has_Controlled_Component, since we want to
6892         include class-wide result types in this treatment. Also test for a
6893         controlling result, since that also requires passing a finalization
6894         list.
6895         (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
6896         even when the result subtype is constrained, to handle calls involving
6897         controlling results.
6898         (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
6899         is now called even when the result subtype is constrained, to handle
6900         calls involving controlling results.
6901         (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
6902         on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
6903         now performs the test).
6904         (Make_Build_In_Place_Call_In_Object_Declaration):
6905         Add_Alloc_Form_Actual_* is now called even when the result subtype is
6906         constrained, to handle calls involving controlling results.
6907         (Add_Return): Accomodate rewritten pattern from local raise to goto
6908         transformation, so that we still recognize an transfer statement
6909         and do the right thing here in that case.
6910         (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
6911         and end of subprogram code.
6912         (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
6913         support for primitives that are functions (without formals) with a
6914         controlling result.
6915         (Inherited_From_Formal): If the actual subtype has not generic parent
6916         type, it is not an actual for a formal derived type, and there is no
6917         operation to inherit from the formal.
6918
6919 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6920             Thomas Quinot  <quinot@adacore.com>
6921
6922         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
6923         inserted cleanup code appropriately for GDB use.
6924         (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
6925         exception handler for Deep_Adjust or Deep_Finalize.
6926         (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
6927         Raise_From_Controlled_Operation is available, use a call to that
6928         subprogram instead of a plain "raise Program_Error" node to raise
6929         Program_Error if an exception is propagated from an Adjust or Finalize
6930         operation.
6931         (Insert_Actions_In_Scope_Around): If the statement to be wrapped
6932         appears in the optional statement list of a triggering alternative, the
6933         scope actions can be inserted directly there, and not in the list that
6934         includes the asynchronous select itself.
6935
6936 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6937             Robert Dewar  <dewar@adacore.com>
6938             Hristian Kirtchev  <kirtchev@adacore.com>
6939
6940         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
6941         generated exception handler appropriately when debugging generated code.
6942         Deal properly with No_Exception_Propagation restriction mode.
6943         (Expand_N_Abort_Statement): Add an unchecked type conversion from
6944         System.Address to System.Tasking.Task_Id when processing the result of
6945         the predefined primitive _disp_get_task_id.
6946         (Expand_N_Asynchronous_Select): Clarify comment.
6947         (Expand_N_Protected_Type_Declaration): Minor code cleanup.
6948         (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
6949         (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
6950         (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
6951         privals and for generated call to Complete_Entry_Body, for better gdb
6952         behavior.
6953         (Copy_Result_Type): Utility to construct a parameter and result profile
6954         for protected functions whose return type is an anonymous access to
6955         subprogram.
6956         (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
6957         call the above.
6958         (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
6959         point when the local-raise-to-goto transformation has taken place.
6960
6961 2007-06-06  Javier Miranda  <miranda@adacore.com>
6962             Nicolas Setton  <setton@adacore.com>
6963
6964         * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
6965         functionality when the backend is generating code.
6966         Otherwise any serious error
6967         reported by the backend calling the frontend routine Error_Msg
6968         changes the Compilation_Mode to Check_Semantics, disables the
6969         functionality of this routine and causes the generation of
6970         spureous additional errors.
6971
6972         * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
6973         debugging information now generated by the compiler for fat-pointer
6974         types.
6975         Document the contents of DW_AT_producer in the GNAT Vendor extensions to
6976         DWARF2/3.
6977         Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
6978
6979 2007-06-06  Thomas Quinot  <quinot@adacore.com>
6980
6981         * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
6982         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
6983         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
6984         For a remote call to a function with a classwide return type, apply an
6985         E.4(18) check to the returned value.
6986         (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
6987         stream attributes of the designated type of an RACW, as they are not
6988         dispatching primitive operations.
6989
6990 2007-06-06  Geert Bosch  <bosch@adacore.com>
6991
6992         * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
6993         negative literal
6994         (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
6995         positive
6996         (Do_Divide_Fixed_Universal): Handle case of negative Frac.
6997         (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
6998         positive
6999         (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
7000
7001 2007-06-06  Javier Miranda  <miranda@adacore.com>
7002
7003         * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
7004         attribute compiling package Ada.Tags under No_Run_Time_Mode.
7005
7006 2007-06-06  Javier Miranda  <miranda@adacore.com>
7007
7008         * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
7009         deallocation of class-wide interface objects.
7010         (Expand_Dispatching_Constructor_Call): Take into account that if the
7011         result of the dispatching constructor is an interface type, the
7012         function returns a class-wide interface type; otherwise the returned
7013         object would be actual. The frontend previously accepted returning
7014         interface types because Expand_Interface_Actuals silently performed
7015         the management of the returned type "as if" it were a class-wide
7016         interface type.
7017         (Expand_Dispatching_Constructor_Call): Replace call to
7018         Make_DT_Access_Action by direct call to Make_Function_Call.
7019
7020 2007-06-06  Robert Dewar  <dewar@adacore.com>
7021             Ed Schonberg  <schonberg@adacore.com>
7022
7023         * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
7024         compute masking constant, since we now set Esize properly to the
7025         underlying size.
7026         (Create_Packed_Array_Type): Set proper Esize value adjusted as required
7027         to match the alignment.
7028         (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
7029         packed arrays of 8 bits or less.
7030
7031         * freeze.adb (Freeze_Entity): When freezing the formals of a
7032         subprogram, freeze the designated type of a parameter of an access type
7033         only if it is an access parameter.
7034         Increase size of C convention enumeration object
7035         (Freeze_Entity, array type case): Make sure Esize value is properly
7036         adjusted for the alignment if it is known.
7037         (Freeze_Entity, array type case): When checking bit packed arrays for
7038         the size being incorrect, check RM_Size, not Esize.
7039         (Freeze_Record_Type): Check for bad discriminated record convention
7040         (In_Exp_Body): Return true if the body is generated for a subprogram
7041         renaming, either an attribute renaming or a renaming as body.
7042         (Check_Itype): If the designated type of an anonymous access component
7043         is a non-protected subprogram type, indicate that it is frozen, to
7044         prevent out-of-scope freeze node at some subsequent call.
7045         (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
7046         only if the subprogram is neither imported nor exported, as well as the
7047         NCA descriptor class if the subprogram is exported.
7048
7049 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7050             Arnaud Charlet  <charlet@adacore.com>
7051             Robert Dewar  <dewar@adacore.com>
7052             Gary Dismukes  <dismukes@adacore.com>
7053
7054         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
7055         default initialization on an imported object, when there is no
7056         initialization call generated for it.
7057         (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
7058         restriction
7059
7060         * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
7061         Static_Elaboration_Desired.
7062         Remove pragma Thread_Body.
7063         Implement a new pragma No_Body
7064         Removes the Explicit_Overriding pragma
7065         Remove Optional_Overriding pragma
7066         (Prag): Deal with Universal_Aliasing.
7067         (Name_CIL, Name_CIL_Constructor, Convention_CIL,
7068         Pragma_CIL_Constructor): New names.
7069
7070         * sem_cat.adb (Validate_Object_Declaration): An initialization that
7071         uses the equivalent aggregate of a type must be treated as an implicit
7072         initialization.
7073         (Get_Categorization): Check a unit for pragma Preelaborate only if it
7074         has none of the other categories.
7075         (Process_Import_Or_Interface_Pragma): Report an error for an attempt
7076         to apply Import to an object renaming declaration.
7077
7078         * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
7079         from a C++ class should be declared as limited and that it will be
7080         considererd limited.
7081         (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
7082         should be declared as limited and that it will be considererd limited.
7083         (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
7084         (Analyze_Pragma, case Export): Diagnose export of enumeration literal
7085         (Analyze_Pragma): Deal with Universal_Aliasing.
7086         (Sig_Flags): Likewise.
7087         (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
7088         (Overflow_Checks_Unsuppressed): New flag.
7089         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
7090         (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
7091         case of JVM or .NET targets, and compiling user code.
7092         Add debugging convenience routine rv
7093
7094 2007-06-06  Robert Dewar  <dewar@adacore.com>
7095
7096         * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
7097         are interface type.
7098         (Build_Elementary_Input_Call): For floating-point use right type in the
7099         absence of strange size or stream size clauses.
7100         (Build_Elementary_Write_Call): Same fix
7101         (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
7102         set to value that does not match base type size.
7103
7104 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7105
7106         * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
7107         object of a limited type can be initialized with a call to a function
7108         that returns in place. If the limited type has unknown discriminants,
7109         and the underlying type is a constrained composite type, build an actual
7110         subtype from the function call, as is done for private types.
7111         (Side_Effect_Free): An expression that is the renaming of an object or
7112         whose prefix is the renaming of a object, is not side-effect free
7113         because it may be assigned through the renaming and its value must be
7114         captured in a temporary.
7115         (Has_Controlled_Coextensions): New routine.
7116         (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
7117         as is done for other limited types.
7118         (Non_Limited_Designated_Type): new predicate.
7119         (Make_CW_Equivalent_Type): Modified to handle class-wide interface
7120         objects.
7121         Remove all handling of with_type clauses.
7122
7123         * par-ch10.adb: Remove all handling of with_type clauses.
7124
7125         * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
7126         checksum if the main source could not be parsed.
7127         (Loat_Unit): When processing a child unit, determine properly whether
7128         the parent unit is a renaming when the parent is itself a child unit.
7129         Remove handling of with_type clauses.
7130
7131         * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
7132         (Set_Is_Static_Coextension): New procedure.
7133         (Has_Local_Raise): New function
7134         (Set_Has_Local_Raise): New procedure
7135         (Renaming_Exception): New field
7136         (Has_Init_Expression): New flag
7137         (Delay_Finalize_Attach): Remove because flag is obsolete.
7138         (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
7139         Remove all handling of with_type clauses.
7140         (Exception_Junk): Can now be set in N_Block_Statement
7141
7142 2007-06-06  Vincent Celier  <celier@adacore.com>
7143             Robert Dewar  <dewar@adacore.com>
7144
7145         * frontend.adb (Frontend): Return immediately if the main source could
7146         not be parsed, because of preprocessing errors.
7147
7148         * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
7149         (Gnat1drv): Exit with errors if the main source could not be parsed,
7150         because of preprocessing errors.
7151         (Check_Rep_Info): New procedure
7152
7153 2007-06-06  Robert Dewar  <dewar@adacore.com>
7154
7155         * g-hesorg.ads, g-heasor.ads,
7156         g-busorg.ads, g-bubsor.ads: Update documentation
7157         GNAT.Heap/Bubble_Sort_G is now pure
7158
7159 2007-06-06  Robert Dewar  <dewar@adacore.com>
7160
7161         * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
7162
7163 2007-06-06  Robert Dewar  <dewar@adacore.com>
7164             Ed Schonberg  <schonberg@adacore.com>
7165
7166         * g-comlin.ads, g-comlin.adb: 
7167         Add new warning for renaming of function return objects
7168
7169         * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
7170         (Tree_Read): Use size of object instead of type'object_size, since the
7171         latter is incorrect for packed array types.
7172         (Tree_Write): Same fix
7173
7174         * opt.ads: Add new warning for renaming of function return objects
7175         (Generating_Code): New boolean variable used to indicate that the
7176         frontend as finished its work and has called the backend to process
7177         the tree and generate the object file.
7178         (GCC_Version): Is now private
7179         (Static_Dispatch_Tables): New constant declaration.
7180         (Overflow_Checks_Unsuppressed): New flag.
7181         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
7182         (List_Closure): New flag for gnatbind (-R)
7183         Zero_Formatting: New flag for gnatbind (-Z)
7184         (Special_Exception_Package_Used): New flag.
7185         (Warn_On_Unrepped_Components): New flag.
7186
7187         * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
7188         unit is a compilation unit, rather than relying on its scope, so that
7189         Standard can be renamed.
7190         (Analyze_Object_Renaming): Add new warning for renaming of function
7191         return objects.
7192         Also reject attempt to rename function return object in Ada 83 mode.
7193         (Attribute_Renaming): In case of tagged types, add the body of the
7194         generated function to the freezing actions of the type.
7195         (Find_Type): A protected type is visible right after the reserved word
7196         "is" is encountered in its type declaration. Set the entity and type
7197         rather than emitting an error message.
7198         (New_Scope): Properly propagate Discard_Names to inner scopes
7199         (Check_Nested_Access): New procedure.
7200         (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
7201         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
7202
7203         * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
7204         Add new warning for renaming of function return objects
7205         (Check_References): Suppress warnings for objects whose type or
7206         base type has Warnings suppressed.
7207         (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
7208         (Set_Warning_Switch): Include new -gnatwc in -gnatwa
7209
7210 2007-06-06  Vincent Celier  <celier@adacore.com>
7211             Emmanuel Briot  <briot@adacore.com>
7212             Olivier Hainque  <hainque@adacore.com>
7213
7214         * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
7215         absolute value of Header.Block_Size when displaying the freed physical
7216         memory in traces.
7217         (Allocate): Compute Storage_Address using Integer_Address, not
7218         Storage_Offset, because the range of Storage_Offset may not be large
7219         enough.
7220         (Configure): New parameter Low_Level_Traces
7221         (Allocate, Deallocation, Free_Physically): Added low-level traces
7222         (Configure): new parameter Errors_To_Stdout.
7223         (Output_File): new subprogram
7224         (Deallocate, Dereference): Send error messages to the proper stream
7225         (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
7226         documented. Previous code would send it to the current output file
7227         defined in GNAT.IO, which might not be stdout
7228         (Is_Valid): Adjust comment to mention that a positive reply means that
7229         Header_Of may be used to retrieve the allocation header associated with
7230         the subprogram Storage address argument. Return False early if this
7231         address argument is misaligned.
7232
7233 2007-06-06  Vincent Celier  <celier@adacore.com>
7234
7235         * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
7236         switch -P
7237         (ASIS_Main): New global variable
7238         (Get_Closure): New procedure
7239         (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
7240         check, metric or pretty. Call Get_Closure in this case.
7241         (Check_Files): For GNAT LIST, check all sources of all projects when
7242         All_Projects is True.
7243         (GNATCmd): Accept -U for GNAT LIST
7244
7245 2007-06-06  Vincent Celier  <celier@adacore.com>
7246
7247         * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
7248         has been specified
7249         Correct error message when invocation of the linker fails
7250         Add explicit size clause for the C imported variables
7251         Object_List_File_Supported and Using_GNU_Linker to emphasize that
7252         we expect char size.
7253         Read target parameters earlier, since this is needed to set
7254         Target_VM properly. Also do not use -static/shared-libgcc for non GCC
7255         targets.
7256
7257 2007-06-06  Vincent Celier  <celier@adacore.com>
7258
7259         * gnatls.adb: 
7260         Add 3 spaces before the default project directory when displaying
7261         the project search path.
7262         Add new command line switch '-l' to display license information.
7263
7264 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
7265
7266         * gmem.c: Add support for timestamps on memory operations.
7267
7268         * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
7269         operations (not used currently, just foundation for future
7270         enhancements). Add possibility to perform full dump of gmem.out file.
7271         (Print_Back_Traces): Declare accesses to root arrays constants since
7272         they aren't modified.
7273         (Print_Back_Traces): allocate root arrays on the heap rather than stack.
7274
7275 2007-06-06  Vincent Celier  <celier@adacore.com>
7276
7277         * gnatsym.adb: Update Copyright notice
7278         (Parse_Cmd_Line): Accept new switch -D
7279         (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
7280          file.
7281
7282         * prj.ads (Policy): New policy Direct
7283         (Yes_No_Unknown): New enumeration type
7284         (Project_Data): New component Libgnarl_Needed
7285
7286         * prj-nmsc.adb (Check_For_Source): When recording a source file make
7287         use the untouched pathname casing.
7288         (Get_Directories): Ensure that the Display_Exec_Directory is using the
7289         proper casing on non case-sensitive platforms like Windows.
7290         (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
7291         on all platforms, as it is not possible to know which one is allowed
7292         before processing the project files.
7293         (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
7294         specified when symbol policy is Direct. Check that when there is a
7295         symbol file defined (either by default or with attribute
7296         Library_Symbol_File) it is not the same as the reference symbol file.
7297         (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
7298         (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
7299         extending projects.
7300         (Record_Ada_Source): Record a source that has been locally removed in an
7301         imported project.
7302
7303         * symbols.ads (Policy): New policy Direct
7304
7305         * symbols-vms.adb (Initialize): Take new policy Direct in case
7306         statement
7307
7308 2007-06-06  Vincent Celier  <celier@adacore.com>
7309
7310         * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
7311         Correct obvious bug (return Dir; instead of return Directory;).
7312         (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
7313
7314 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7315
7316         * g-pehage.adb (Produce): Open output files in Binary mode, so that
7317         they have UNIX line endings (LF only) even on Windows, and thus pass
7318         all GNAT style checks.
7319
7320 2007-06-06  Emmanuel Briot  <briot@adacore.com>
7321
7322         * g-regpat.adb (Quote): Fix improper quoting of '.'
7323
7324 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7325
7326         * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
7327         default, set False on a per-runtime basis.
7328         (Need_Netdb_Buffer): New constant.
7329
7330         * g-socket.ads, g-socket.adb: Import new package
7331         GNAT.Sockets.Thin.Task_Safe_NetDB.
7332         (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
7333         binding to obtain proper message.
7334         (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
7335         Replace various occurrences of Arry (Arry'First)'Address with the
7336         equivalent Arry'Address (GNAT always follows implementation advice from
7337         13.3(14)).
7338         (Get_Host_By_Address, Get_Host_By_Name,
7339         Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
7340         instead, rely on platform-specific task safe netdb operations provided
7341         by g-socthi.
7342
7343         * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
7344         parameter Process_Blocking_IO.
7345         (Host_Error_Messages): Add stub body.
7346         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
7347         (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
7348         Safe_Getservbyport): Move functions into new child package
7349         Task_Safe_NetDB.
7350         (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
7351         Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
7352         (In_Addr): Add alignment clause.
7353
7354 2007-06-06  Robert Dewar  <dewar@adacore.com>
7355
7356         * g-trasym.ads, g-traceb.ads: Update list of supported targets
7357         Add note about symbolic traceback
7358
7359 2007-06-06  Pascal Obry  <obry@adacore.com>
7360
7361         * hostparm.ads (Normalized_CWD): Use the host directory separator
7362         instead of the hardcoded forward slash which is not the proper
7363         character on Windows for example.
7364         (Java_VM): Removed.
7365
7366 2007-06-06  Vincent Celier  <celier@adacore.com>
7367             Arnaud Charlet  <charlet@adacore.com>
7368
7369         * a-clrefi.adb, a-clrefi.ads: New files
7370
7371         * impunit.adb: Add s-os_lib in the list of user visible units.
7372         (Non_Imp_File_Names_95): Add a-clrefi to this list
7373         Remove obsolete run-time entries.
7374         (Non_Imp_File_Names_05): Add Ada 2005 entries for:
7375          "a-exetim" -- Ada.Execution_Time
7376          "a-extiti" -- Ada.Execution_Time.Timers
7377
7378         * mlib-prj.ads, mlib-prj.adb
7379         (Build_Library): Use untouched object dir and library dir. At the
7380         same time makes sure that the checks are done using the canonical
7381         form. Removes hard-coded directory separator and use the proper host
7382         one instead.
7383         (Process_Project): Do not look in object directory to check if libgnarl
7384         is needed for a library, if there is no object directory.
7385         (Build_Library): Scan the ALI files to decide if libgnarl is needed for
7386         linking.
7387         (Build_Library): When invoking gnatbind, use a response file if the
7388         total size of the arguments is too large.
7389
7390         * Makefile.rtl: (g-sttsne): New object file.
7391         Add entry for a-clrefi, s-utf_32, System.Exceptions
7392
7393         * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
7394         (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
7395         (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
7396         Change g-string to s-string, g-os_lib to s-os_lib
7397         Change all g-utf_32 references to s-utf_32
7398
7399 2007-06-06  Tristan Gingold  <gingold@adacore.com>
7400             Olivier Hainque  <hainque@adacore.com>
7401
7402         * init.c: Do not adjust IP of an imported VMS exception of ia64.
7403         LIB$STOP is called to raise an exception and the IP of the exception
7404         is the instruction right after the call.
7405         (__gnat_adjust_context_for_raise, AIX): Implement.
7406         (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
7407          adjust_context_for_raise before Raise_From_Signal_Hanler.
7408         (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
7409         siginfo is passed to the handler, necessary to let the zcx propagation
7410         engine unwind past it.
7411
7412 2007-06-06  Olivier Hainque  <hainque@adacore.com>
7413
7414         * initialize.c (__gnat_initialize for vxworks):  Update documentation
7415         on the ZCX support, using different sets of crtstuff objects than with
7416         GCC 3.4.
7417
7418 2007-06-06  Robert Dewar  <dewar@adacore.com>
7419
7420         * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
7421         spec from body
7422         (Layout_Type): Fix recomputation of size from alignment.
7423
7424 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7425             Javier Miranda  <miranda@adacore.com>
7426
7427         * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
7428         association in an instance.
7429         (Copy_Generic_Node): If the node is a string literal, no need to copy
7430         its descendants.
7431         (Is_Generic_Formal): For a formal subprogram, the declaration is the
7432         grandparent of the entity.
7433         (Analyze_Formal_Interface_Type): Transform into a full type declaration,
7434         to simplify handling of formal interfaces that derive from other formal
7435         interfaces.
7436         (Instantiate_Subprogram_Body): The defining unit name of the body of
7437         the instance should be a defining identifier.
7438         (Install_Formal_Packages): make global to the package, for use in
7439         instantiations of child units.
7440         (Analyze_Package_Instantiation): Do not attempt to set information on an
7441         enclosing master of an entry when expansion is disabled.
7442         (Instantiate_Type): If the actual is a tagged synchronized type and the
7443         generic ancestor is an interface, create a generic actual for the
7444         corresponding record.
7445         (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
7446         declaration, to ensure that the interface list is processed correctly.
7447         (Inline_Instance_Body): If enclosing scope is an instance body, remove
7448         its entities from visibiility as well.
7449         (Pre_Analyze_Actuals): if the actual is an allocator with  constraints
7450         given with a named association, analyze the expression only, not the
7451         discriminant association itself.
7452         (Reset_Entity): If the analysis of a selected component is transformed
7453         into an expanded name in the prefix of a call with parameters, do not
7454         transform the original node into an expanded name, to prevent visibility
7455         errors in the case of nested generics.
7456         (Check_Private_View): For an array type, check whether the index types
7457         may need exchanging.
7458
7459 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
7460             Vincent Celier  <celier@adacore.com>
7461
7462         * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
7463         since both are separated.
7464         Add support for imported CIL packages.
7465         Add further special handling of "value_type" for CIL.
7466         Add special handling of pragma Import for CIL.
7467
7468         * make.ads, make.adb: When switch -eS is used, direct all outputs to
7469         standard output instead of standard error, except errors.
7470         (Absolute_Path): Use untouched casing for the parent directory.
7471         (Add_Library_Search_Dir): Use the untouched directory name.
7472         (Add_Source_Search_Dir): Idem.
7473         (Change_To_Object_Directory): Update output to use proper casing.
7474         (Create_Binder_Mapping_File): Use the untouched filename to set
7475         ALI_Name.
7476         (Gnatmake): Use untouched library and executable directory names.
7477         (Insert_Project_Sources): Use untouched filename for spec and body.
7478         (Is_In_Object_Directory): Use untouched object directory.
7479         (Mark_Directory): Idem.
7480         (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
7481         contains the non-canonical filename in all cases.
7482         (Change_To_Object_Directory): In verbose mode, display the name of the
7483         object directory we're changing to.
7484         (Compile_Sources): Make sure, when a project file is used, to compile
7485         the body of the unit, when there is one, even when only the spec is
7486         recorded in an ALI file.
7487         (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
7488         spec to the body.
7489         (Report_Compilation_Failed): New procedure
7490         (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
7491         procedures moved from the spec to the body.
7492         (Extract_Failure): Removed, not used
7493         Replace explicit raises of exception Bind_Failed and Link_Failed with
7494         calls to Make_Failed with the proper message.
7495         Replace explicit raises of exception Compilation_Failed with calls to
7496         procedure Report_Compilation_Failed.
7497         (Initialize): Create mapping files unconditionally when using project
7498         files.
7499
7500         * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
7501         Pragma_CIL_Constructor): New names.
7502
7503         * targparm.ads, targparm.adb
7504         (Compiler_System_Version): Removed, no longer used.
7505         (Get_Target_Parameters): Relax checks on system.ads validity. Add
7506         handling of two new system flags: JVM and CLI.
7507
7508 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
7509             Arnaud Charlet  <charlet@adacore.com>
7510
7511         * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
7512         time, use the default s-interr body that provides interrupt support
7513         based on signals.
7514         (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
7515         a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
7516         g-soccon.ads, and s-taprop.adb for the marte run time.
7517         (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
7518         timers are supported on marte.
7519         (EH_MECHANISM for marte): Do not use ZCX.
7520         (THREADSLIB for marte): Use -lmarte.
7521         Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
7522         Add mlib-tgt-specific.o to gnatmake objects
7523         mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
7524         longer of MLib.Tgt.
7525         (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
7526         6, either kernel or rtp, use a specialized version of s-osinte.ads.
7527
7528 2007-06-06  Pascal Obry  <obry@adacore.com>
7529
7530         * mkdir.c (__gnat_mkdir): Add support for UTF-8.
7531
7532 2007-06-06  Vincent Celier  <celier@adacore.com>
7533
7534         * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
7535         separator, use instead the proper host directory separator.
7536         (Copy_ALI_Files): Make sure that an already existing ALI file in the
7537         ALI copy dir is writable, before doing the copy.
7538
7539         * mlib-utl.ads, mlib-utl.adb: 
7540         (Gcc): If length of command line is too long, put the list of object
7541         files in a response file, if this is supported by the platform.
7542         (Ar): If invocation of the archive builder is allowed to be done in
7543         chunks and building it in one shot would go above an OS dependent
7544         limit on the number of characters on the command line, build the archive
7545         in chunks.
7546
7547 2007-06-06  Vincent Celier  <celier@adacore.com>
7548
7549         * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
7550         of specified object file is not equal to base name of source.
7551
7552 2007-06-06  Javier Miranda  <miranda@adacore.com>
7553             Hristian Kirtchev  <kirtchev@adacore.com>
7554             Ed Schonberg  <schonberg@adacore.com>
7555
7556         * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
7557         the full type declaration.
7558         (Analyze_Component_Declaration): Add local variable E to capture the
7559         initialization expression of the declaration. Replace the occurences of
7560         Expression (N) with E.
7561         (OK_For_Limited_Init_In_05): Allow initialization of class-wide
7562         limited interface object with a function call.
7563         (Array_Type_Declaration): If the declaration lacks subtype marks for
7564         indices, create a simple index list to prevent cascaded errors.
7565         (Is_Null_Extension): Ignore internal components created for secondary
7566         tags when checking whether a record extension is a null extension.
7567         (Check_Abstract_Interfaces): Add missing support for interface subtypes
7568         and generic formals.
7569         (Derived_Type_Declaration): Add missing support for interface subtypes
7570         and generic formals.
7571         (Analyze_Object_Declaration): If an initialization expression is
7572         present, traverse its subtree and mark all allocators as static
7573         coextensions.
7574         (Add_Interface_Tag_Component): When looking for components that may be
7575         secondary tags, ignore pragmas that can appear within a record
7576         declaration.
7577         (Check_Abstract_Overriding): an inherited function that dispatches on
7578         result does not need to be overriden if the controlling type is a null
7579         extension.
7580         (Mentions_T): Handle properly a 'class attribute in an anonymous access
7581         component declaration, when the prefix is an expanded name.
7582         (Inherit_Component): If the derivation is for a private extension,
7583         inherited components remain visible and their ekind should not be set
7584         to Void.
7585         (Find_Type_Of_Object): In the case of an access definition, always set
7586         Is_Local_Anonymous_Access. We were previously not marking the anonymous
7587         access type of a return object as a local anonymous type.
7588         (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
7589         range with character literal bounds.
7590         (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
7591         (Access_Subprogram_Declaration): Indicate that the type declaration
7592         depends on an incomplete type only if the incomplete type is declared
7593         in an open scope.
7594         (Analyze_Subtype_Declaration): Handle properly subtypes of
7595         synchronized types that are tagged, and that may appear as generic
7596         actuals.
7597         (Access_Subprogram_Declaration): An anonymous access to subprogram can
7598         appear as an access discriminant in a private type declaration.
7599         (Add_Interface_Tag_Components): Complete decoration of the component
7600         containing the tag of a secondary dispatch table and the component
7601         containing the offset to the base of the object (this latter component
7602         is only generated when the parent type has discriminants --as documented
7603         in this routine).
7604         (Inherit_Components): Use the new decoration of the tag components to
7605         improve the condition that avoids inheriting the components associated
7606         with secondary tags of the parent.
7607         (Build_Discriminanted_Subtype): Indicate to the backend that the
7608         size of record types associated with dispatch tables is known at
7609         compile time.
7610         (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
7611         (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
7612         to include task, protected, and synchronized interfaces as limited
7613         interfaces.
7614         (Process_Discriminants): Remove the setting of
7615         Is_Local_Anonymous_Access on the type of (anonymous) access
7616         discriminants of nonlimited types.
7617         (Analyze_Interface_Type_Declaration): Complete the decoration of the
7618         class-wide entity it is is already present. This situation occurs if
7619         the limited-view has been previously built.
7620         (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
7621         field.
7622         (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
7623         Related_Interface.
7624
7625 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7626
7627         * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
7628         of the type that specify the position of interface tags when the type
7629         inherits discriminated array components from the parent type.
7630         If a component is initialized with a box, check for the presence of a
7631         default expression in its declaration before using its default
7632         initialization procedure.
7633         (Resolve_Record_Aggregate): If a component is box-initialized, and the
7634         component type has a discriminants, create a partial aggregate for it
7635         by copying the discriminants of the component subtype.
7636         Reject attempt to initialize a discriminant with a box.
7637         (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
7638         associated with dispatch tables is known at compile time.
7639         (Get_Value): If an association in a record aggregate has a box
7640         association, and the corresponding record component has a default
7641         expression, always copy the default expression, even when the
7642         association has a single choice, in order to create a proper
7643         association for the expanded aggregate.
7644
7645 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7646             Robert Dewar  <dewar@adacore.com>
7647
7648         * par-ch12.adb (P_Generic_Associations): The source position of an
7649         Others association is that of the others keyword, not that of the token
7650         that follows the box.
7651         (P_Formal_Type_Definition): Handle formal access types that carry a
7652         not null indicator.
7653
7654         * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
7655         multiple identifier are present, save Scan_State before scanning the
7656         colon, to ensure that separate trees are constructed for each
7657         declaration.
7658         (P_Identifier_Declarations): For object declaration, set new flag
7659         Has_Init_Expression if initialization expression present.
7660         (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
7661         Improve NOT NULL error messages
7662
7663 2007-06-06  Robert Dewar  <dewar@adacore.com>
7664
7665         * par-ch4.adb: (P_Name): Recover from literal used as name
7666
7667 2007-06-06  Vincent Celier  <celier@adacore.com>
7668
7669         * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
7670         defaulted to False.
7671         In the "not" case, recursive call with Complemented set to True.
7672         Do not allow "or" or "and" operators when Complemented is True.
7673
7674 2007-06-06  Vincent Celier  <celier@adacore.com>
7675
7676         * prj.adb (Project_Empty): Gives default value for new component
7677         Libgnarl_Needed
7678
7679         * prj-attr.ads: Minor reformatting
7680
7681         * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
7682         directory using the untouched casing.
7683         (For_All_Source_Dirs): Idem.
7684
7685         * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
7686         directories specified with switches -aP.
7687         (Add_Search_Project_Directory): New procedure
7688         (Initialize_Project_Path): Put the directories in table
7689         Search_Directories in the project search path.
7690         (Initialize_Project_Path): For VMS, transform into canonical form the
7691         project path.
7692
7693 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
7694
7695         * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
7696         true if configurable run-time or No_Run_Time is set.
7697         (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
7698         processing an unit which is not the one being compiled.
7699
7700 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
7701
7702         * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
7703         Replace UC by Ada.UC
7704
7705         * s-bitops.adb: Get rid of System.Pure_Exceptions.
7706         Replace UC by Ada.UC
7707
7708 2007-06-06  Robert Dewar  <dewar@adacore.com>
7709
7710         * scng.adb: (Check_End_Of_Line): Deal with very long lines
7711
7712 2007-06-06  Robert Dewar  <dewar@adacore.com>
7713
7714         * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
7715         Remove no longer used nodes.
7716
7717 2007-06-06  Javier Miranda  <miranda@adacore.com>
7718             Ed Schonberg  <schonberg@adacore.com>
7719             Robert Dewar  <dewar@adacore.com>
7720
7721         * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
7722         on obsolescent withed unit in case of limited-withed units.
7723         (Analyze_Compilation_Unit): Add guard to code that removed an
7724         instantiation from visibility, to prevent compiler aborts when
7725         instantiation is abandoned early on.
7726         (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
7727         current unit being analyzed, and Distinguish local incomplete types
7728         from limited views of types declared elsewhere.
7729         (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
7730         to state that the class-wide entity is shared by the limited-view
7731         and the full-view.
7732         (Analyze_With_Clause): Improve placement of flag for case of
7733         unimplemented unit.
7734         (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
7735         manner similar to GNAT.Current_Exception. This is a violation of
7736         restriction (No_Exception_Propagation), and also inhibits the
7737         optimization of local raise to goto.
7738         (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
7739         and if so set Most_Recent_Exception_Used flag in Opt, and also check
7740         for violation of restriction No_Exception_Propagation.
7741
7742 2007-06-06  Javier Miranda  <miranda@adacore.com>
7743             Hristian Kirtchev  <kirtchev@adacore.com>
7744             Gary Dismukes  <dismukes@adacore.com>
7745
7746         * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
7747         use of entity Exception_Occurrence if it is not available in the
7748         target run-time.
7749
7750         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
7751         concurrent types are declared within an Ada 2005 generic, build their
7752         corresponding record types since they are needed for overriding-related
7753         semantic checks.
7754         (Analyze_Protected_Type): Rearrange and simplify code for testing that a
7755         protected type does not implement a task interface or a nonlimited
7756         interface.
7757         (Analyze_Task_Type): Rearrange and simplify code for testing that a task
7758         type does not implement a protected interface or a nonlimited interface.
7759         (Single_Task_Declaration, Single_Protected_Declaration): use original
7760         entity for variable declaration, to ensure that debugging information
7761         is correcty generated.
7762         (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
7763         routines if the expander is not active.
7764         (Analyze_Task_Body): Mark all handlers to stop optimization of local
7765         raise, since special things happen for task exception handlers.
7766
7767         * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
7768         concurrent types declared within a generic.
7769         (Check_Dispatching_Operation): Do not emit warning about late interface
7770         operations in the context of an instance.
7771         (Check_Dispatching_Call): Remove restriction against calling a
7772         dispatching operation with a limited controlling result.
7773         (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
7774         Register_Interface_DT_Entry by calls to Register_Primitive.
7775         (Check_Dispatching_Formals): Handle properly a function with a
7776         controlling access result.
7777
7778 2007-06-06  Robert Dewar  <dewar@adacore.com>
7779             Arnaud Charlet  <charlet@adacore.com>
7780
7781         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
7782         Check for restriction No_Implementation_Attributes if in Ada 95 mode.
7783         (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
7784         (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
7785         message when using a VM, since this attribute is not supported.
7786         (Analyze_Record_Representation_Clause): Give unrepped component warnings
7787
7788         * usage.adb: Add new warning for renaming of function return objects
7789         Indicate that -gnatwp and -gnatwP concern front-end inlining
7790         Add line for -gnatyg
7791         Add usage information for -gnatw.c/C
7792
7793 2007-06-06  Robert Dewar  <dewar@adacore.com>
7794             Ed Schonberg  <schonberg@adacore.com>
7795
7796         * sem_ch5.adb
7797         (Find_Var): Do not consider function call in test for infinite loop
7798         warning if warnings set off for function entity.
7799         (One_Bound): Do not create a temporary for a loop bound if it is a
7800         character literal.
7801         (Analyze_Assignment): Traverse the right hand side of an assignment and
7802         mark all allocators as static coextensions.
7803         (Analyze_Assignment): Exempt assignments involving a dispatching call
7804         to a function with a controlling access result from the check requiring
7805         the target to be class-wide.
7806
7807 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
7808             Ed Schonberg  <schonberg@adacore.com>
7809             Robert Dewar  <dewar@adacore.com>
7810             Javier Miranda  <miranda@adacore.com>
7811
7812         * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
7813         chain of coextensions when an allocator serves as the root of such a
7814         chain.
7815         (Propagate_Coextensions): Remove the test for the root being an
7816         allocator.
7817         (Resolve_Allocator): Add condition to ensure that all future decoration
7818         occurs on an allocator node. Add processing and cleanup for static
7819         coextensions.
7820         (Valid_Conversion): If the operand type is the limited view of a
7821         class-wide type, use the non-limited view is available to determine
7822         legality of operation.
7823         (Ambiguous_Character): move to spec, for use elsewhere.
7824         (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
7825         (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
7826         character literals.
7827         (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
7828         Do_Division_Check flag explicitly.
7829         (Resolve_Actuals): If the actual is of a synchronized type, and the
7830         formal is of the corresponding record type, this is a call to a
7831         primitive operation of the type, that is declared outside of the type;
7832         the actual must be unchecked-converted to the type of the actual
7833         (Resolve_Call): Kill all current values for any subprogram call if
7834         flag Suppress_Value_Tracking_On_Call is set.
7835         (Resolve_Type_Conversion): Generate error message the the operand
7836         or target of interface conversions come from a limited view.
7837         (Check_Infinite_Recursion): Ignore generated calls
7838         (Check_Allocator_Discrim_Accessibility): New procedure for checking
7839         that an expression that constrains an access discriminant in an
7840         allocator does not denote an object with a deeper level than the
7841         allocator's access type.
7842         (Resolve_Allocator): In the case of an allocator initialized by an
7843         aggregate of a discriminated type, check that associations for any
7844         access discriminants satisfy accessibility requirements by calling
7845         Check_Allocator_Discrim_Accessibility.
7846         (Resolve_Equality_Op): Handle comparisons of anonymous access to
7847         subprogram types in the same fashion as other anonymous access types.
7848         (Resolve_Concatenation_Arg): Remove initial character '\' in an error
7849         message that is not a continuation message.
7850         (Resolve_Type_Conversion): Add missing support for conversion to
7851         interface type.
7852         (Resolve_Actuals): Introduce a transient scope around the call if an
7853         actual is a call to a function returning a limited type, because the
7854         resulting value must be finalized after the call.
7855         (Resolve_Actuals): If the call was given in prefix notations, check
7856         whether an implicit 'Access reference or implicit dereference must be
7857         added to make the actual conform to the controlling formal.
7858
7859 2007-06-06  Robert Dewar  <dewar@adacore.com>
7860             Javier Miranda  <miranda@adacore.com>
7861
7862         * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
7863         (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
7864         overriding of an inherited private subprogram now there is no need to
7865         inherit its dispatching slot and reduce the size of the dispatch table.
7866         Set_All_DT_Position now ensures that the same slot is now assigned to
7867         both entities. This is required to statically build the dispatch table.
7868         (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
7869         of calling Set_All_DT_Position to re-evaluate the position of the
7870         entries in the dispatch table. Such reevaluation is not desired if
7871         the tagged type is already frozen.
7872
7873 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
7874             Gary Dismukes  <dismukes@adacore.com>
7875             Robert Dewar  <dewar@adacore.com>
7876             Javier Miranda  <miranda@adacore.com>
7877
7878         * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
7879         reference acts as an lvalue when the attribute name modifies the prefix
7880         (Is_Coextension_Root): New routine.
7881         (Mark_Static_Coextensions): New routine.
7882         (Type_Access_Level): Revise code for checking the level of the
7883         anonymous access type of a return object.
7884         (Safe_To_Capture_Value): Not safe to capture if Address_Taken
7885         (Matches_Prefixed_View_Profile): Remove the no longer necessary
7886         retrieval of the corresponding controlling record type.
7887         (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
7888         concurrent types declared within a generic as well as class wide types.
7889         Emit a mode incompatibility error whenever a protected entry or routine
7890         override an interface routine whose first parameter is not of mode
7891         "out", "in out" or access to variable.
7892         (Overrides_Synchronized_Primitive): Rename to
7893         Find_Overridden_Synchronized_Primitive.
7894         (Collect_Interface_Components): New subprogram that collects all the
7895         components of a tagged record containing tags of secondary dispatch
7896         tables.
7897         (Add_Global_Declaration): New procedure
7898         (Abstract_Interface_List): Handle properly the case of a subtype of a
7899         private extension.
7900         (Type_Access_Level): In the case of a type whose parent scope is a
7901         return statement, call Type_Access_Level recursively on the enclosing
7902         function's result type to determine the level of the return object's
7903         type.
7904         (Build_Elaboration_Entity): Build name of elaboration entity from the
7905         scope chain of the entity, rather than the unit name of the file name.
7906         (Check_Nested_Access): New procedure.
7907         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
7908         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
7909         (Get_Renamed_Entity): Utility routine for performing common operation
7910         of chasing the Renamed_Entity field of an entity.
7911
7912 2007-06-06  Robert Dewar  <dewar@adacore.com>
7913
7914         * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
7915         elaboration model
7916         (Check_A_Call): Add check for entry call which was causing blowup
7917
7918 2007-06-06  Olivier Hainque  <hainque@adacore.com>
7919
7920         * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
7921         special code on ia64-vms to handle major incompatibilities between the
7922         GCC unwinding ABI and the VMS Condition Handling Facility, both calling
7923         this routine with a very different set of arguments and expectations on
7924         the return value.
7925
7926 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7927
7928         * socket.c (__gnat_close_signalling_fd): New function.
7929         (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
7930         __gnat_safe_getservbyname, __gnat_safe_getservbyport):
7931         New supporting functions for task safe Netdb operations.
7932
7933 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7934             Olivier Hainque  <hainque@adacore.com>
7935
7936         * a-except-2005.ads, a-except-2005.adb
7937         (Raise_From_Controlled_Operation): New procedure in
7938         (private part of) Ada.Exceptions (standard runtime version). Used to
7939         provide informational exception message when Program_Error is raised as
7940         a result of an Adjust or Finalize operation propagating an exception.
7941         (Rmsg_28): Fix description for E.4(18) check.
7942         (Raise_Current_Excep): Call Debug_Raise_Exception just before
7943         propagation starts, to let debuggers know about the event in a reliable
7944         fashion.
7945         Take the address of E and dereference to make sure it is homed on stack
7946         and prevent the stores from being deleted, necessary for proper
7947         debugger behavior on "break exception" hits.
7948         (Local_Raise): Moved to System.Exceptions
7949
7950         * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
7951         exception message from the current occurrence and raise Program_Error
7952         has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
7953
7954 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
7955             Arnaud Charlet  <charlet@adacore.com>
7956
7957         * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
7958         lock, if needed.
7959
7960         * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
7961         priority associated to a lock.
7962
7963         * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
7964         assertion to take into account case of no abort restriction.
7965         (Initialize_Protection_Entries): Add initialization for the field
7966         New_Ceiling associated to the protected object.
7967         (Unlock_Entries): Change the ceiling priority of the underlying lock, if
7968         needed.
7969
7970         * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
7971         since this function needs to be set consistently with Update_Exception.
7972
7973         * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
7974         since this function needs to be set consistently with Update_Exception.
7975
7976         * s-taskin.ads: Update comments on
7977         Interrupt_Server_Blocked_On_Event_Flag.
7978         (Unbind_Handler): Fix handling of server_task wakeup
7979         (Server_Task): Set self's state so that Unbind_Handler can take
7980         appropriate actions.
7981         (Common_ATCB): Now use a constant from System.Parameters to determine
7982         the max size of the Task_Image field.
7983
7984         * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
7985         Initialize_Analyzer function.
7986         ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
7987         take into account case of no abort restriction.
7988         ([Vulnerable_]Complete_Master): Modify assertion.
7989
7990         * s-tataat.adb (Finalize): Use the nestable versions of
7991         Defer/Undefer_Abort.
7992
7993         * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
7994
7995         * s-tpobop.ads: Update comments.
7996
7997         * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
7998         of locking the object manually, to avoid inconsistencies between
7999         Lock/Unlock_Entry assertions.
8000
8001         * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
8002         terminating
8003         application and System.Parameters.No_Abort is True.
8004         Update comments on Interrupt_Server_Blocked_On_Event_Flag.
8005         (Unbind_Handler): Fix handling of server_task wakeup
8006         (Server_Task): Set self's state so that Unbind_Handler can take
8007         appropriate actions.
8008
8009 2007-06-06  Thomas Quinot  <quinot@adacore.com>
8010
8011         * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
8012         declarations instead of an explicit null body, for conciseness.
8013
8014 2007-06-06  Robert Dewar  <dewar@adacore.com>
8015
8016         * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
8017         illegal aggregate and the type is still Any_Composite.
8018         (Subtypes_Statically_Match): Fix problem of empty discriminant list
8019
8020 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
8021
8022         * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
8023         to prevent subsequent expansion.
8024
8025 2007-06-06  Robert Dewar  <dewar@adacore.com>
8026
8027         * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
8028
8029 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
8030             Robert Dewar  <dewar@adacore.com>
8031
8032         * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
8033         exceptions.
8034         (Write_Itype): Handle case of string literal subtype, which
8035         comes up in this context.
8036         (Update_Itype): when debugging expanded code, update sloc of itypes
8037         associated with defining_identifiers and ranges, for gdb use.
8038         (Sprint_Node_Actual): Add static keyword to object or exception
8039         declaration output if Is_Statically_Allocated is True.
8040         (Sprint_End_Label): Set entity of end marker for a subprogram, package,
8041         or task body, so that the tree carries the proper Sloc information for
8042         debugging use.
8043         (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
8044
8045 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
8046
8047         * s-secsta.adb (Chunk): Ensure this object has a static size known at
8048         compile time, to avoid dynamic memory allocation
8049         (Elaboration code): Only use dynamic memory allocation when needed.
8050
8051 2007-06-06  Quentin Ochem  <ochem@adacore.com>
8052
8053         * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
8054         "Overflow_Guard".
8055         (Stack_Analyzer): Added field "Overflow_Guard"
8056         (Task_Result): Added field "Overflow_Guard".
8057         (Index_Str): New constant.
8058         (Task_Name_Str): New constant.
8059         (Actual_Size_Str): New constant.
8060         (Pattern_Array_Element_Size): New constant.
8061         (Get_Usage_Range): New subprogram.
8062         (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
8063         Now align the output.
8064         Added comments.
8065         (Initialize): Added value for Overflow_Guard.
8066         (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
8067         Update the value of the overflow guard according to the actual
8068         beginning of the pattern array.
8069         (Initialize_Analyzer): Added parameter Overflow_Guard.
8070         Take this parameter into accound when computing the max size.
8071         (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
8072         (Report_Result): Removed extra useless procedure.
8073         Updated call to Output_Result.
8074         Moved full computation of the Task_Result here.
8075
8076 2007-06-06  Thomas Quinot  <quinot@adacore.com>
8077
8078         * g-soccon-darwin.ads, gen-soccon.c: Add new constant
8079         Thread_Blocking_IO, always True by default, set False on a per-runtime
8080         basis.
8081         Add Windows-specific constants
8082         Add new constant Need_Netdb_Buffer.
8083         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
8084         not, whether to use getXXXbyYYY_r.
8085
8086         * gsocket.h: Add new constant Need_Netdb_Buffer.
8087         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
8088         not, whether to use getXXXbyYYY_r.
8089
8090 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
8091
8092         * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
8093         than their first call.
8094         Add type Dummy_Communication_Block used in the generation of the pre-
8095         defined dispatching primitive _disp_asynchronous_select.
8096         (Storage_Element): Put Pragma Universal_Aliasing on it.
8097
8098 2007-06-06  Vincent Celier  <celier@adacore.com>
8099
8100         * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
8101         function.
8102
8103         * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
8104         letter if it is not followed by a '/' or a '\'.
8105         (Windows): New Boolean function
8106
8107         * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
8108         Ada 2005.
8109         (Containing_Directory): On Windows, keep at least one '/' or '\' after a
8110         drive letter.
8111         (Containing_Directory): Raise Use_Error when the directory is a root
8112         directory.
8113         (Extension): When returning the result, use a conversion to Result_Type,
8114         not a qualification.
8115
8116 2007-06-06  Robert Dewar  <dewar@adacore.com>
8117
8118         * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
8119         (Set_Style_Check_Options): Recognize new -gnatyg style switch
8120
8121         * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
8122         Warn_On_Non_Local_Exception to False, to turn off warnings for
8123         No_Exception_Propagation in ZFP runtime.
8124         (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
8125         back-ends.
8126         (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
8127
8128 2007-06-06  Vincent Celier  <celier@adacore.com>
8129
8130         * switch-b.adb (Scan_Binder_Switches): Add processing for new
8131         switches -R and -Z
8132
8133         * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
8134         (Scan_Make_Switches): Recognize new switch -aP
8135
8136 2007-06-06  Matthew Gingell  <gingell@adacore.com>
8137             Jose Ruiz  <ruiz@adacore.com>
8138
8139         * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
8140         VxWorks task descriptor in the Ada run time, call a C subprogram
8141         (__gnat_get_stack_info) that extracts the required information.
8142
8143         * sysdep.c: Back out temporary lynxos workaround.
8144         (__gnat_get_stack_info): Add this procedure that passes to the Ada run
8145         time the stack information associated to the currently executing task.
8146         Only VxWorks systems require this function.
8147
8148 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
8149
8150         * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
8151         add the stack bias if the offset is computed from a frame address.
8152         (__gnat_backtrace): Adjust for above change.
8153
8154 2007-06-06  Thomas Quinot  <quinot@adacore.com>
8155
8156         * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
8157         PE_Non_Transportable_Actual.
8158         (By_Descriptor_Last): New constant.
8159         (By_Copy_Return): Likewise.
8160
8161 2007-06-06  Vincent Celier  <celier@adacore.com>
8162
8163         * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
8164         is.
8165
8166         * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
8167         /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
8168         /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
8169         Add missing comment for /OPTIMIZE=SPACE
8170         Add entry for OPTIMIZE=SPACE
8171         Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
8172         Add documentation for new qualifiers corresponding to -gnatw.c/.C
8173
8174 2007-06-06  Vincent Celier  <celier@adacore.com>
8175             Robert Dewar  <dewar@adacore.com>
8176
8177         * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
8178         -gnatw.C)
8179
8180         * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
8181         Document gnatbind switch -a
8182         (case Constructions): Document that variables declarations are allowed
8183         for previously declared variables.
8184         Fix external lib project example
8185         -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
8186         Indicate that "#if not X or Y then" is not allowed in input files to
8187         gnatprep.
8188         Document gnatw.x and gnatw.X warning flags
8189         Mention -Winline switch to activate warnings when back-end inlining is
8190         ineffective.
8191         Add gnatcheck rule descriptions
8192         Describe how to use the GNAT driver to call a tool on a closure.
8193         Describe how to run project-wide checks or metrics.
8194         Document gnatbind's -R option
8195         Updated to account for Ada 2005 support
8196
8197         * gnat_rm.texi (Case Construction): Allow variable declarations for
8198         previously declared variables.
8199         (Representation Clauses and Pragmas): Lift restriction on alignment
8200         clauses for record types.
8201         (Ada.Characters.*): Fix typo in reference to A.3.3(27).
8202         Document No_Exception_Propagation restriction
8203         Document No_Body pragma
8204         Updated to account for Ada 2005 support; corrected some typos
8205         (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
8206
8207         * gnat-style.texi: Make it clear that we never use mode IN for
8208         procedures or functions
8209
8210         * ug_words: Add entries for -gnatw.x and -gnatw.X
8211         Add entries for -gnatw.c/.C
8212
8213 2007-06-06  Pascal Obry  <obry@adacore.com>
8214             Vincent Celier  <celier@adacore.com>
8215
8216         * makegpr.adb (Add_Archive_Path): Use untouched object and library
8217         dirs and library name.
8218         (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
8219         comments.
8220         (Build_Library): Idem.
8221         (Compile_Individual_Sources): Idem.
8222         (Compile_Link_With_Gnatmake): Idem.
8223         (Compile_Sources): Idem.
8224         (Get_Imported_Directories): Idem.
8225         (Link_Executables): Idem. Same change for the executable dir.
8226         (Check_Compilation_Needed): C_Source_Path new variable containing
8227         the canonical form of Source_Path to check against the source names
8228         in the dependency file.
8229         (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
8230         verbose mode, display the name of the object directory we're changing
8231         to.
8232         (Saved_Switches): New name of table X_Switches
8233         (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
8234         (Usage): New line for switch -aP
8235         (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
8236         testing if a directory should be added to the search path.
8237
8238 2007-06-06  Javier Miranda  <miranda@adacore.com>
8239
8240         * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads, 
8241         a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
8242         declaration after freezing point of all its associated tagged types;
8243         otherwise such types are frozen too early.
8244
8245 2007-06-06  Robert Dewar  <dewar@adacore.com>
8246
8247         * a-reatim.adb: Documentation addition
8248
8249         * g-cgideb.adb: Minor code reorganization
8250
8251         * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
8252         mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
8253         s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
8254
8255         * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
8256         function.  Change name New_Scope to Push_Scope
8257         (Get_Debug_Flag_K): Remove unused obsolete function.
8258
8259         * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
8260         Push_Scope.
8261
8262         * makeusg.adb: Update Copyright notice
8263         Add line for switch -aP
8264
8265         * makeusg.adb: Fix wording of some usage messages
8266
8267         * s-assert.adb (Raise_Assert_Failure): Add call to
8268         Debug_Raise_Assert_Failure.
8269
8270         * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
8271         (2, Standard'Alignment) for compatibility with AAMP (where alignment
8272         is restricted to 1).
8273
8274         * s-wchjis.adb: Remove use of System.Pure_Exceptions
8275
8276         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
8277         node location to No_Location when we're not debugging the expanded
8278         code.
8279
8280 2007-05-22  Alexandre Oliva  <aoliva@redhat.com>
8281
8282         * misc.c (enumerate_modes): Consider log2_b to always be one.
8283
8284 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
8285
8286         * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
8287
8288 2007-05-02  Pascal Obry  <obry@adacore.com>
8289
8290         * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
8291         to use Stream_IO.File_Type. This is needed to make use of the UTF-8
8292         encoding support of Stream_IO.
8293         (Write_Unit): Idem.
8294
8295         * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
8296         filename and corresponding encoding to match the OS requirement.
8297         (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
8298         routine will fail on specific devices like CON: AUX: ...
8299
8300         PR ada/29856: Add missing braces
8301
8302 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8303
8304         PR ada/31660
8305         * ada-tree.h (lang_tree_node): Fix typo in chain_next.
8306
8307 2007-04-21  Jan Hubicka  <jh@suse.cz>
8308
8309         * misc.c (gnat_expand_body): Don't call target for destructors,
8310         avoid redundant check on syntax errors.
8311
8312 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8313
8314         * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
8315         instead of checking GIMPLE_STMT_P in chain_next.
8316
8317 2007-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
8318
8319         PR ada/31576
8320         * system-linux-alpha.ads: Disable constant condition warning for the
8321         Default_Bit_Order variable.
8322         * system-linux-s390.ads: Likewise.
8323         * system-linux-s390x.ads: Likewise.
8324         * system-linux-sparc.ads: Likewise.
8325
8326 2007-04-06  Javier Miranda  <miranda@adacore.com>
8327             Matt Heaney  <heaney@adacore.com>
8328             Robert Dewar  <dewar@adacore.com>
8329
8330         a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
8331         a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
8332         a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
8333         a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
8334         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
8335         a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
8336         a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
8337         a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
8338         a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
8339         a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
8340         a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
8341         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
8342         a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
8343         a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
8344         a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
8345         a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
8346         a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
8347         i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
8348         unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
8349         a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
8350         a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
8351         a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
8352         expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
8353         s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
8354         s-taprop-tru64.adb, s-taprop-irix.adb,
8355         s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
8356         s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
8357         s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
8358         s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb, 
8359         s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads, 
8360         a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb, 
8361         a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads, 
8362         g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads, 
8363         s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb, 
8364         s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads, 
8365         s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb, 
8366         s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, 
8367         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb, 
8368         s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb, 
8369         a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads, 
8370         a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads, 
8371         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb, 
8372         a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
8373         a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads, 
8374         a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
8375         access types.
8376         Update documentation.
8377         Minor rewording.
8378
8379 2007-04-06  Robert Dewar  <dewar@adacore.com>
8380
8381         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
8382         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
8383         system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
8384         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
8385         system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
8386         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
8387         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
8388         system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
8389         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
8390         system-hpux-ia64.ads, targparm.adb,
8391         targparm.ads (Functions_Return_By_DSP_On_Target): Removed
8392
8393         * system.ads: Move Functions_Return_By_DSP to obsolete section,
8394         kept for bootstrap purposes only.
8395
8396 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
8397
8398         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
8399         s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
8400         s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
8401         (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
8402
8403 2007-04-06  Robert Dewar  <dewar@adacore.com>
8404
8405         * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
8406         (Local_Raise): New dummy procedure called when a raise is converted
8407         to a local goto. Used for debugger to detect that the exception
8408         is raised.
8409
8410         * debug.adb: Document new d.g flag (expand local raise statements to
8411         gotos even if pragma Restriction (No_Exception_Propagation) is not set)
8412
8413         * exp_sel.adb: Use Make_Implicit_Exception_Handler
8414
8415         * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
8416         suppress warnings for unused handlers.
8417         (Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
8418         warnings for raise statements not handled locally.
8419         (Get_RT_Exception_Entity): New function
8420         (Get_Local_Call_Entity): New function
8421         (Find_Local_Handler): New function
8422         (Warn_If_No_Propagation): New procedure
8423         (Expand_At_End_Handler): Call Make_Implicit_Handler
8424         (Expand_Exception_Handlers): Major additions to deal with local handlers
8425         (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
8426         Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
8427         for local raise
8428
8429         * exp_ch11.ads (Get_RT_Exception_Entity): New function
8430         (Get_Local_Call_Entity): New function
8431
8432         * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
8433         of restrictions that the binder will never suggest adding.
8434
8435         * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
8436         to No_Elist.
8437
8438         * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
8439         be with'ed in the presence of pragma Restriction
8440         (No_Exception_Propagation).
8441
8442         * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
8443
8444         * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
8445         parameter, then the handler is not a suitable target for a local raise,
8446         and this is a violation of restriction No_Exception_Propagation.
8447         (Analyze_Handled_Statements): Analyze choice parameters in exception
8448         handlers before analyzing statement sequence (needed for proper
8449         detection of local raise statements).
8450         (Analyze_Raise_Statement): Reraise statement is a violation of the
8451         No_Exception_Propagation restriction.
8452
8453         * s-rident.ads: Add new restriction No_Exception_Propagation
8454
8455         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
8456         function, like Make_Exception_Handler but sets Local_Raise_Statements
8457         to No_List.
8458         (Add_Unique_Serial_Number): Deal with case where this is called during
8459         processing of configuration pragmas.
8460
8461 2007-04-06  Thomas Quinot  <quinot@adacore.com>
8462             Pat Rogers  <rogers@adacore.com>
8463             Pascal Obry  <obry@adacore.com>
8464
8465         * g-stsifd-sockets.adb: New file.
8466
8467         * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
8468         g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
8469         g-socthi-vms.adb: Move signalling
8470         fd management to a nested package, so that they can conveniently be
8471         moved to a subunit that is shared across Windows, VMS, and VxWorks
8472         (Ada implementation) or completed with imported bodies from socket.c
8473         (UNIX case).
8474         (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
8475         subprograms.
8476         (Check_Selector): Use Read_Signalling_Fd to read and discard data from
8477         the signalling file descriptor.
8478         (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
8479         signalling file descriptor.
8480         (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
8481         instead of creating a pair of sockets for signalling here.
8482
8483         * g-socthi.adb: Ditto.
8484         Set the runtime process to ignore SIGPIPEs on platforms that support
8485         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
8486
8487         * g-socthi-mingw.adb: Ditto.
8488         (WS_Version): Use Windows 2.2.
8489         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
8490
8491         * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
8492         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
8493
8494         * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
8495         added GNAT byte swapping facility
8496         Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
8497
8498         * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
8499
8500         * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
8501         New subprograms.
8502         (__gnat_create_signalling_fds): New subprogram.
8503         Set the runtime process to ignore SIGPIPEs on platforms that support
8504         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
8505
8506 2007-04-06  Hristian Kirtchev  <kirtchev@adacore.com>
8507             Vincent Celier  <celier@adacore.com>
8508
8509         * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
8510         New version of Ada.Calendar which supports the new upper bound of Ada
8511         time (2399-12-31 86_399.999999999).
8512         The following modifications have been made to the package:
8513          - New representation of time as count of nanoseconds since the start of
8514            Ada time (1901-1-1 0.0).
8515          - Target independent Split and Time_Of routines which service both
8516            Ada 95 and Ada 2005 code.
8517          - Target independent interface to the Ada 2005 children of Calendar.
8518          - Integrated leap seconds into Ada 95 and Ada 2005 mode.
8519          - Handling of non-leap centenial years.
8520          - Updated clock function.
8521          - Updated arithmetic and comparison operators.
8522
8523         * a-caldel.adb (To_Duration): Add call to target independent routine in
8524         Ada.Calendar to handle the conversion of time to duration.
8525
8526         * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
8527         (UTC Offset).
8528         If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
8529         set off to 0.
8530         (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
8531         targets do not have a natural time zone, GMT is used as a default.
8532         (__gnat_get_task_options): New.
8533
8534         * a-direct.adb (Modification_Time): Add with and use clauses for
8535         Ada.Calendar and Ada.
8536         Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
8537         since it is no longer needed.
8538         (Duration_To_Time): Removed.
8539         (OS_Time_To_Long_Integer): Removed.
8540         (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
8541         Formatting Time_Of routines which automatically handle time zones,
8542         buffer periods and leap seconds.
8543
8544         * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
8545         target independent routines in Ada.Calendar.
8546
8547         * a-calfor.ads, a-calfor.adb: 
8548         Code cleanup and addition of validity checks in various routines.
8549         (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
8550         Ada.Calendar.
8551
8552         * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
8553         independent routine in Ada.Calendar.
8554
8555 2007-04-06  Olivier Hainque  <hainque@adacore.com>
8556
8557         * adaint.c: 
8558         (convert_addresses): Adjust prototype and dummy definition to expect an
8559          extra file_name argument.
8560
8561         * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
8562         filling the now expected file_name argument with the appropriate
8563         argv[0] expansion.
8564         (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
8565         (tracebk): Array of void * instead of char *, corresponding to what
8566          convert_addresses expects.
8567         (exename): New static global, to hold the executable file name to be
8568         used in all convert_addresses invocations.
8569         (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
8570         change.
8571         (__gnat_gmem_a2l_initialize): Resolve exename.
8572         (__gnat_convert_addresses): Use exename as the convert_addresses
8573         file_name argument.
8574
8575         * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
8576         "convert_addresses", now expecting a filename argument. Import the
8577         necessary entities to compute the filename to use and pass it to
8578         convert_addresses.
8579
8580 2007-04-06  Matt Gingell  <gingell@adacore.com>
8581
8582         * system-aix.ads: Back out previous change.
8583         (Functions_Return_By_DSP): Removed
8584
8585 2007-04-06  Pascal Obry  <obry@adacore.com>
8586
8587         * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
8588         or the monotonic used by Ada.Real_Time) to compute the sleep duration
8589         on Windows.
8590
8591 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
8592
8593         * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
8594         function. Its value changes in different VxWorks versions, and it is
8595         now handled by the function __gnat_get_task_options.
8596
8597         * s-taprop-vxworks.adb (Create_Task): Call the function
8598         __gnat_get_task_options to get the required options for creating a task.
8599
8600 2007-04-06  Pascal Obry  <obry@adacore.com>
8601             Thomas Quinot  <quinot@adacore.com>
8602
8603         * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
8604         dealing with filename.
8605         (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
8606         filename from a standard string to a wide-string depending on the
8607         encoding value.
8608         (__gnat_freopen): Idem.
8609         (__gnat_current_time): New function (wrapper for time(3) standard C
8610         function).
8611
8612         * g-os_lib.ads (Current_Time): New function. Returns the current
8613         system time as an OS_Time value.
8614
8615         * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
8616         (Monotonic_Clock): Same.
8617
8618 2007-04-06  Quentin Ochem  <ochem@adacore.com>
8619
8620         * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
8621         not on a natural.
8622         (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
8623
8624 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
8625
8626         * a-retide.adb: Add elaboration code to ensure that the tasking run
8627         time is initialized when using delay operations even when no task is
8628         created.
8629
8630 2007-04-06  Javier Miranda  <miranda@adacore.com>
8631
8632         * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
8633         component Num_Prim_Ops.
8634         (Set_Num_Prim_Ops): Removed.
8635         Remove all the assertions because all the routines of this
8636         package are inline always.
8637         (Get_Offset_Index): Add support to primary dispatch tables.
8638         Move the documentation about the dispatch table to a-tags.ads
8639         (Set_External_Tag): Removed
8640         (Inherit_TSD): Removed.
8641         (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
8642         moved to a-tags.ads
8643         (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
8644         Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
8645         of the TSD field "Table" because this field has been renamed to
8646         "Ifaces_Table".
8647         (Inherit_CPP_DT): Removed.
8648         (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
8649         Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
8650         declarations have been moved to a-tags.ads
8651         (Check_Size): Removed.
8652         (Expanded_Name): Updated to get access to the new field of TSD
8653         containing the address of the expanded name.
8654         (Get_Access_Level/Set_Access_Level): Removed.
8655         (Get_Predefined_Prim_Op_Address): Removed.
8656         (Set_Predefined_Prim_Op_Address): Removed.
8657         (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
8658         (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
8659         (Set_Expanded_Name): Removed.
8660         (Inherit_DT): Removed.
8661         (Inherit_CPP_DT): Removed.
8662         (Set_RC_Offset): Removed.
8663         (Set_TSD): Removed.
8664         (Base_Address): New function that displaces "this" to point to the base
8665         of the object (that is, to point to the primary tag of the object).
8666
8667 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8668             Javier Miranda  <miranda@adacore.com>
8669
8670         * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
8671         anonymous access component, do not create a master_id if type already
8672         has one, as may happen if the type is a subcomponent of a packed array
8673         type.
8674         (Build_Init_Procedure, Component_Needs_Simple_Initialization,
8675         Initialize_Tag): Remove code associated with the old CPP pragmas.
8676         CPP_Virtual and CPP_Vtable are no longer supported.
8677         (Build_Offset_To_Top_Internal): Add support for concurrent record types
8678         (Build_Offset_To_Top_Functions): Add support for concurrent record types
8679         (Freeze_Record_Type): Remove call to
8680         Init_Predefined_Interface_Primitives.
8681         (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
8682         code required to initialize the tags of the secondary dispatch tables.
8683         This leaves the algoritm more clear.
8684         (Init_Secondary_Tags): Add support for concurrent record types
8685         (Make_Predefined_Primitive_Specs): Code cleanup.
8686         (Predefined_Primitive_Bodies): Code cleanup.
8687         (Build_Master_Renaming): New local subprogram.
8688         (Expand_N_Full_Type_Declaration): Build the master_id associated with
8689         anonymous access to task type components.
8690         (Expand_N_Subtype_Indication): The bounds of a range constraint in a
8691         subtype indication are resolved during analysis, and must not be done
8692         here.
8693         (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
8694
8695 2007-04-06  Geert Bosch  <bosch@adacore.com>
8696             Ed Schonberg  <schonberg@adacore.com>
8697             Javier Miranda  <miranda@adacore.com>
8698             Bob Duff  <duff@adacore.com>
8699
8700         * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
8701         for conversion of a Float_Type'Truncation to integer.
8702
8703         * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
8704         check if a node is an attribute that can be handled directly by the
8705         back end.
8706         (Expand_N_Attribute_Reference): Suppress expansion of floating-point
8707         attributes that can be handled directly by the back end.
8708         (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
8709         use new predicate Is_Access_Protected_Subprogram_Type.
8710         (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
8711         and Unchecked_Union if it is generated as part of the default  Output
8712         procedure for a type with default discriminants.
8713         (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
8714         if we are compiling under restriction No_Dispatching_Calls.
8715         (Constrained): Use Underlying_Type, in case the type is private without
8716         discriminants, but the full type has discriminants.
8717         (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
8718         call to Build_Get_Access_Level.
8719         (Expand_N_Attribute_Reference): The use of 'Address with class-wide
8720         interface objects requires a call to the run-time subprogram that
8721         returns the base address of the object.
8722         (Valid_Conversion): Improve error message on illegal attempt to store
8723         an anonymous access to subprogram value into a record component.
8724
8725         * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
8726         null".
8727         (Simplify_Type_Conversion): New procedure that performs simplification
8728         of Int_Type (Float_Type'Truncation (X)).
8729         (Resolve_Type_Conversion): Call above procedure after resolving operand
8730         and before performing checks. This replaces the existing ineffective
8731         code in Exp_Ch4.
8732         (Set_String_Literal_Subtype): When creating the internal static lower
8733         bound subtype for a string literal, use a newly created copy of the
8734         subtree representing the lower bound.
8735         (Resolve_Call): Exclude build-in-place function calls from transient
8736         scope treatment. Update comments to describe this exception.
8737         (Resolve_Equality_Op): In case of dispatching call check violation of
8738         restriction No_Dispatching_Calls.
8739         (Resolve_Call): If the call returns an array, the context imposes the
8740         component type of the array, and the function has one non-defaulted
8741         parameter, rewrite the call as the indexing of a call with a single
8742         parameter, to handle an Ada 2005 syntactic ambiguity for calls written
8743         in prefix form.
8744         (Resolve_Actuals): If an actual is an allocator for an access parameter,
8745         the master of the created object is the innermost enclosing statement.
8746         (Remove_Conversions): For a binary operator, check if type of second
8747         formal is numeric, to check if an abstract interpretation is present
8748         in the case of exponentiation as well.
8749
8750 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8751             Bob Duff  <duff@adacore.com>
8752
8753         * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
8754         copying a parameter list in a call, set properly the First_Named_Formal
8755         and Next_Named_Formal fields in the new list and in the enclosing call.
8756         (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
8757         names, to ease typing in the debugger. Improve comments.
8758         (Watch_Node): New variable, intended to be set in the debugger.
8759         (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
8760         called when the watched node is created.
8761         (New_Node_Debugging_Output): Combined version of local procedures
8762         New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
8763         with a parameter so that conditional breakpoints like "if Node = 12345"
8764         work.
8765         (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
8766         Add Elist1 function
8767
8768 2007-04-06  Thomas Quinot  <quinot@adacore.com>
8769             Ed Schonberg  <schonberg@adacore.com>
8770             Gary Dismukes  <dismukes@adacore.com>
8771
8772         * checks.ads, checks.adb (Selected_Range_Checks): No range check is
8773         required for a conversion between two access-to-unconstrained-array
8774         types.
8775         (Expr_Known_Valid): Validity checks do not apply to discriminants, but
8776         to discriminant constraints on discriminant objects. This rule must
8777         apply as well to discriminants of protected types in private components.
8778         (Null_Exclusion_Static_Checks): If No_Initialization is set on an
8779         object of a null-excluding access type then don't require the
8780         the object declaration to have an expression and don't emit a
8781         run-time check.
8782
8783 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
8784             Eric Botcazou  <botcazou@adacore.com>
8785
8786         * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
8787         and made constant.
8788
8789         * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
8790         Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
8791         carry any.
8792
8793         * fe.h (Compiler_Abort): Add third parameter.
8794
8795         * misc.c (internal_error_function): Build third argument from current
8796         input location and pass it to Compiler_Abort.
8797
8798 2007-04-06  Gary Dismukes  <dismukes@adacore.com>
8799
8800         * cstand.adb (Create_Standard): When the target's storage unit size is
8801         greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
8802         Standard_String.
8803
8804 2007-04-06  Nicolas Roche  <roche@adacore.com>
8805
8806         * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
8807         absolute path can have the following form: device:/a/b. In this case
8808         '/' should be inserted between the path and the filename.
8809
8810 2007-04-06  Olivier Hainque  <hainque@adacore.com>
8811             Eric Botcazou  <botcazou@adacore.com>
8812
8813         * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
8814         VAR_DECL to a CONST_DECL we make for a public constant when we know the
8815         corresponding definition has created the so made visible variable.
8816         Handle anonymous access to protected subprogram.
8817         (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
8818         object with an address clause volatile.  Re-enable original fix.
8819         <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
8820         too.
8821         (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
8822         associated with either the Equivalent or Root type, instead of the
8823         naked type node.
8824         (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
8825         subtree for every field of a global record type.
8826         (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
8827         discriminants, invoke again variable_size on its newly computed sizes.
8828
8829 2007-04-06  Robert Dewar  <dewar@adacore.com>
8830             Thomas Quinot  <quinot@adacore.com>
8831             Ed Schonberg  <schonberg@adacore.com>
8832             Bob Duff  <duff@adacore.com>
8833
8834         * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
8835         (Next_Component_Or_Discriminant): New function and procedure
8836         (First_Index, First_Literal, Master_Id,
8837         Set_First_Index, Set_First_Literal, Set_Master_Id):
8838         Add missing Ekind assertions.
8839         (Is_Access_Protected_Subprogram_Type): New predicate.
8840         (Has_RACW): New entity flag, set on package entities to indicate that
8841         the package contains the declaration of a remote accecss-to-classwide
8842         type.
8843         (E_Return_Statement): This node type has the Finalization_Chain_Entity
8844         attribute, in case the result type has controlled parts.
8845         (Requires_Overriding): Add this new flag, because "requires
8846         overriding" is subtly different from "is abstract" (see AI-228).
8847         (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
8848         Is_Abstract_Type. Make sure these are called only when appropriate.
8849         (Has_Pragma_Unreferenced_Objects): New flag
8850
8851         * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
8852         class-wide, the tag of the right-hand side must be an exact match, not
8853         an ancestor of that of the object on left-hand side.
8854         (Move_Activation_Chain): New procedure to create the call to
8855         System.Tasking.Stages.Move_Activation_Chain.
8856         (Expand_N_Extended_Return_Statement): Generate code to call
8857         System.Finalization_Implementation.Move_Final_List at the end of a
8858         return statement if the function's result type has controlled parts.
8859         Move asserts to Build_In_Place_Formal.
8860         (Move_Final_List): New function to create the call statement.
8861         (Expand_N_Assignment_Statement): In case of assignment to a class-wide
8862         tagged type, replace generation of call to the run-time subprogram
8863         CW_Membership by call to Build_CW_Membership.
8864         (Expand_N_Return_Statement): Replace generation of call to the run-time
8865         subprogram Get_Access_Level by call to Build_Get_Access_Level.
8866         (Expand_N_Simple_Function_Return): Replace generation of call to the
8867         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
8868
8869         * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
8870         Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
8871         access to protected operations.
8872         (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
8873         master and chain actual parameters to a build-in-place function call
8874         involving tasks.
8875         (BIP_Formal_Suffix): Add new enumeration literals to complete the case
8876         statement.
8877         (Make_Build_In_Place_Call_In_Allocator,
8878         Make_Build_In_Place_Call_In_Anonymous_Context,
8879         Make_Build_In_Place_Call_In_Assignment,
8880         Make_Build_In_Place_Call_In_Object_Declaration): Call
8881         Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
8882         (Expand_Inlined_Call): If the subprogram is a null procedure, or a
8883         stubbed procedure with a null body, replace the call with a null
8884         statement without using the full inlining machinery, for efficiency
8885         and to avoid invalid values in source file table entries.
8886
8887         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
8888         renamings of calls to build-in-place functions.
8889
8890         * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
8891         provides the functionality of RTE_Available to record components.
8892         (RTU_Entity): The function Entity has been renamed to RTU_Entity
8893         to avoid undesired overloading.
8894         (Entity): New subprogram that returns the entity for the referened
8895         unit. If this unit has not been loaded, it returns Empty.
8896         (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
8897         Remove no longer used entities.
8898         (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
8899         (RE_Type_Specific_Data): New entity.
8900         (RE_Move_Any_Value): New entity.
8901         (RE_TA_A, RE_Get_Any_Type): New entities.
8902         (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
8903          RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
8904          RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
8905         (Entity): New subprogram that returns the entity for the referened
8906         unit. If this unit has not been loaded, it returns Empty.
8907         (RTE): Addition of a new formal that extends the search to the scopes
8908         of the record types found in the chain of the package.
8909
8910         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
8911         "abstract subprograms must be visible" message, whether or not the type
8912         is an interface; that is, remove the special case for interface types.
8913         (Analyze_Function_Return): Remove error message "return of task objects
8914         is not yet implemented" because this is now implemented.
8915         (Create_Extra_Formals): Add the extra master and activation chain
8916         formals in case the result type has tasks.
8917         Remove error message "return of limited controlled objects is not yet
8918         implemented".
8919         (Create_Extra_Formals): Add the extra caller's finalization list formal
8920         in case the result type has controlled parts.
8921         (Process_Formals): In case of access formal types there is no need
8922         to continue with the analysis of the formals if we already notified
8923         errors.
8924         (Check_Overriding_Indicator): Add code to check overriding of predefined
8925         operators.
8926         (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
8927         flags for formals that do not require them,.
8928         (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
8929         hidden entity is use visible or directly visible.
8930         (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
8931         Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
8932         Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
8933         New_Overloaded_Entity): Split Is_Abstract flag into
8934         Is_Abstract_Subprogram and Is_Abstract_Type.
8935
8936         * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
8937         a return statement's finalization list to the caller's list, used for
8938         build-in-place functions with result type with controlled parts.
8939         Remove no longer used entities.
8940
8941         * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
8942         longer needed, because the full type is now limited, and therefore a
8943         pass-by-reference type.
8944         (Foreign_Task_Level): New constant.
8945
8946         * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
8947         move tasks from the activation chain belonging to a return statement to
8948         the one passed in by the caller, and update the master to the one
8949         passed in by the caller.
8950         (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
8951         of unactivated tasks, so we don't kill the ones that are being returned
8952         by a build-in-place function.
8953         (Create_Task): Ignore AI-280 for foreign threads.
8954
8955 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8956             Robert Dewar  <dewar@adacore.com>
8957             Bob Duff  <duff@adacore.com>
8958             Gary Dismukes  <dismukes@adacore.com>
8959
8960         * errout.adb (Unwind_Internal_Type): Use predicate
8961         Is_Access__Protected_Subprogram_Type.
8962
8963         * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
8964         (Freeze_Entity, packed array case): Do not override explicitly set
8965         alignment and size clauses.
8966         (Freeze_Entity):  An entity declared in an outer scope can be frozen if
8967         the enclosing subprogram is a child unit body that acts as a spec.
8968         (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
8969         (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
8970         Remove all code for DSP option
8971
8972         * layout.adb (Layout_Record_Type): Use First/
8973         Next_Component_Or_Discriminant
8974         (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
8975         to handle properly the anonymous access case.
8976
8977         * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
8978         for all access attributes, because overload resolution should work the
8979         same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
8980         causes the error message for the ambiguous "X'Access = Y'Access" and
8981         "X'Unrestricted_Access = Y'Access" and so forth to match.
8982         (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
8983         now that anonymous access to protected operations have their own kind.
8984         (Resolve_Attribute): In case of dispatching call check the violation of
8985         restriction No_Dispatching_Calls.
8986         (Check_Array_Type): Check new -gnatyA array index style option
8987
8988         * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
8989         attempt to derive from a synchronized tagged type.
8990         (Analyze_Type_Declaration): If there is a incomplete tagged view of the
8991         type, inherit the class-wide type already created, because it may
8992         already have been used in a self-referential anonymous access component.
8993         (Mentions_T): Recognize self-referential anonymous access components
8994         that use (a subtype of) the class-wide type of the enclosing type.
8995         (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
8996         Derived_Type for Prev formal on call to
8997         Check_Anonymous_Access_Components rather than Empty.
8998         (Make_Incomplete_Type_Declaration): Add test for case where the type has
8999         a record extension in deciding whether to create a class-wide type,
9000         rather than just checking Tagged_Present.
9001         (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
9002         to stand-alone object declarations as well as component declarations.
9003         (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
9004         prevent accidental overwriting when enclosing package appears in
9005         a limited_with_clause.
9006         (Array_Type_Declaration): If the component type is an anonymous access,
9007         the associated_node for the itype is the type declaration itself.
9008         (Add_Interface_Tag_Components): Modified to support concurrent
9009         types with abstract interfaces.
9010         (Check_Abstract_Interfaces): New subprogram that verifies the ARM
9011         rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
9012         (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
9013         to complete the decoration of synchronized interface types. Add also
9014         a call to Check_Abstract_Interfaces to verify the ARM rules.
9015         (Derive_Interface_Subprograms): Modified to support concurrent types
9016         with abstract interfaces.
9017         (Analyze_Subtype_Indication): Resolve the range with the given subtype
9018         mark, rather than delaying the full resolution depending on context.
9019         (Analyze_Component_Declaration,Analyze_Interface_Declaration,
9020         Analyze_Object_Declaration,Analyze_Subtype_Declaration,
9021         Array_Type_Declaration,Build_Derived_Record_Type,
9022         Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
9023         Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
9024         Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
9025         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
9026         called only when appropriate.
9027         (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
9028         to private type.
9029         (Analyze_Subtype_Declaration): For an access subtype declaration, create
9030         an itype reference for the anonymous designated subtype, to prevent
9031         scope anonmalies in gigi.
9032         (Build_Itype_Reference): New utility, to simplify construction of such
9033         references.
9034
9035 2007-04-06  Vincent Celier  <celier@adacore.com>
9036
9037         * errutil.adb (Initialize): Initialize warnings table, if all warnings
9038         are suppressed, supply an initial dummy entry covering all possible
9039         source locations.
9040
9041         * make.adb (Scan_Make_Arg): Reject options that should start with "--"
9042         and start with only one, such as "-RTS=none".
9043         (Collect_Arguments): Do not check for sources outside of projects.
9044         Do not collect arguments if project is externally built.
9045         (Compile_Sources): Do nothing, not even check if the source is up to
9046         date, if its project is externally built.
9047         (Compile): When compiling a predefined source, add -gnatpg
9048         as the second switch, after -c.
9049         (Compile_Sources): Allow compilation of Annex J renames without -a
9050         (Is_In_Object_Directory): Check if the ALI file is in the object
9051         even if there is no project extension.
9052         (Create_Binder_Mapping_File): Only put a unit in the mapping file for
9053         gnatbind if the ALI file effectively exists.
9054         (Initialize): Add the directory where gnatmake is invoked in front of
9055         the path if it is invoked from a bin directory, even without directory
9056         information, so that the correct GNAT tools will be used when spawned
9057         without directory information.
9058
9059         * makeusg.adb: Change switch -S to -eS
9060         Add lines for new switches -we, -wn and -ws
9061         Add line for new switch -p
9062
9063         * prj-proc.adb (Process): Set Success to False when Warning_Mode is
9064         Treat_As_Error and there are warnings.
9065
9066         * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
9067         -gnatww Change gnatmake switch -S to -eS
9068         (Scan_Make_Switches): Code reorganisation. Process separately multi
9069         character switches and single character switches.
9070         (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
9071         False when switch is not recognized by gnatmake.
9072         (Scan_Make_Switches): Set Setup_Projects True when -p or
9073         --create-missing-dirs is specified.
9074
9075         * fname.adb (Is_Predefined_File_Name): Return True for annex J
9076         renamings Calendar, Machine_Code, Unchecked_Conversion and
9077         Unchecked_Deallocation only when Renamings_Included is True.
9078
9079         * par.adb: Allow library units Calendar, Machine_Code,
9080         Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
9081         when -gnatg is not specified.
9082         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
9083         there is no need to generate always a record_definition_node in case
9084         of synchronized interface types.
9085         (SIS_Entry_Active): Initialize global variable to False
9086         (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
9087         indicate cases where AI-447 says "not null" is legal.
9088
9089         * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
9090
9091         * makegpr.adb (Check_Compilation_Needed): Take into account dependency
9092         files with with several lines starting with the object fileb name.
9093         (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
9094         is specified.
9095         (Initialize): Add the directory where gprmake is invoked in front of the
9096         path, if it is invoked from a bin directory or with directory
9097         information, so that the correct GNAT tools will be used when invoked
9098         directly.
9099         (Check_Compilation_Needed): Process correctly backslashes on Windows.
9100
9101         * vms_data.ads: Update switches/qualifiers
9102
9103 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9104             Thomas Quinot  <quinot@adacore.com>
9105
9106         * exp_aggr.adb:
9107         If the array component is a discriminated record, the array aggregate
9108         is non-static even if the component is given by an aggregate with
9109         static components.
9110         (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
9111         (Convert_Aggr_In_Allocator): If the allocator is for an access
9112         discriminant and the type is controlled. do not place on a finalization
9113         list at this point. The proper list will be determined from the
9114         enclosing object.
9115         (Build_Record_Aggr_Code): If aggregate has box-initialized components,
9116         initialize record controller if needed, before the components, to ensure
9117         that they are properly finalized.
9118         (Build_Record_Aggr_Code): For the case of an array component that has a
9119         corresponding array aggregate in the record aggregate, perform sliding
9120         if required.
9121
9122 2007-04-06  Javier Miranda  <miranda@adacore.com>
9123             Gary Dismukes  <dismukes@adacore.com>
9124             Ed Schonberg  <schonberg@adacore.com>
9125
9126         * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
9127         run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
9128
9129         * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
9130         accessibility on class-wide allocators if the allocator occurs at the
9131         same scope level as the allocator's type. The check is guaranteed to
9132         succeed in that case, even when the expression originates from a
9133         parameter of the containing subprogram.
9134         (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
9135         under No_Dispatching_Calls restriction. During the semantic analysis
9136         we already notified such violation.
9137         (Tagged_Membership): Constant folding. There is no need to check
9138         the tag at run-time if the type of the right operand is non
9139         class-wide abstract.
9140         Replace call to Is_Ancestor by call to Is_Parent
9141         to support concurrent types with interface types.
9142         (Expand_N_Allocator): Add an assertion associated with the generation
9143         of the master_id.
9144         (Expand_N_Slice): Do not enable range check to nodes associated
9145         with the frontend expansion of the dispatch table.
9146         (Is_Local_Access_Discriminant): Subsidiary function to
9147         Expand_N_Allocator.
9148         (Tagged_Membership): Replace generation of call to the run-time
9149         subprogram CW_Membership by call to Build_CW_Membership.
9150         (Expand_Allocator_Expression): Replace generation of call to the
9151         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
9152
9153         * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
9154         initialize most the TSD components by means of an aggregate.
9155         Modify the declaration of the object containing the TSD
9156         because we now expand code that has a higher level of abstraction.
9157         The TSD has a discriminant containing the Inheritance Depth Level,
9158         value that is used in the membership test but also to fix the size
9159         of the table of ancestors.
9160         (Expand_Interface_Conversion): Insert function body at the closest place
9161         to the conversion expression, to prevent access-before-elaboration
9162         errors in the backend.
9163         Code improved to reduce the size of the dispatch table if
9164         compiling under restriction No_Dispatching_Calls plus code cleanup.
9165         Code reorganization plus removal of calls to Set_Num_Prim_Ops
9166         (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
9167         (Expand_Dispatching_Call): Minor code reorganization plus addition of
9168         code to return immediately if compiling under No_Dispatching_Calls
9169         restriction.
9170         (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
9171         CPP_Virtual and CPP_Vtable are no longer supported.
9172         (Expand_Interface_Conversion): Add missing support for interface type
9173         derivations.
9174         (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
9175         Is_Parent to support concurrent types with interfaces.
9176         (Init_Predefined_Interface_Primitives): Removed.
9177         (Make_Secondary_DT): Modified to support concurrent record types.
9178         (Set_All_DT_Position): Modified to support concurrent record types.
9179         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
9180         with Get_External_Tag, Inherit_TSD, Set_External_Tag.
9181         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
9182         with CW_Membership.
9183         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
9184         with Get_Access_Level, Get_Predefined_Prim_Op_Address,
9185         Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
9186         Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
9187         Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
9188         (Expand_Dispatching_Call): Replace generation of call to the run-time
9189         subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
9190         calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
9191         Address.
9192         (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
9193         the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
9194         Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
9195         Build_Set_Prim_Op_Address.
9196         (Get_Remotely_Callable): Subprogram removed.
9197         (Init_Predefined_Interface_Primitives): Replace generation of call to
9198         the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
9199         Prims.
9200
9201         * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
9202         First (Parameter_Associations ()) with the call to First_Actual that
9203         returns an actual parameter expression for both named and positional
9204         associations.
9205
9206         * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
9207         check violation of restriction No_Dispatching_Calls.
9208         (Check_Controlling_Type): A formal of a tagged incomplete type is a
9209         controlling argument.
9210
9211         * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
9212         First/Next_Component_Or_Discriminant
9213         (Insert_Actions): Add entries for new N_Push and N_Pop nodes
9214         (Find_Implemented_Interface): Removed. All the calls to this subprogram
9215         specify Any_Limited_Interface, and this functionality is already
9216         provided by the function Has_Abstract_Interfaces.
9217         (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
9218         support concurrent types implementing interfaces.
9219         (Find_Implemented_Interface): Removed. All the calls to this subprogram
9220         specify kind Any_Limited_Interface, and this functionality is already
9221         provided by the function Has_Abstract_Interfaces.
9222         (Remove_Side_Effects): replace Controlled_Type by
9223         CW_Or_Controlled_Type whenever the issue is related to
9224         using or not the secondary stack.
9225
9226         * par-ch12.adb (P_Formal_Type_Definition): Update calls to
9227         P_Interface_Type_Definition to fulfill the new interface (the formal
9228         Is_Synchronized is no longer required).
9229
9230         * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
9231         Update dependencies.
9232
9233         * exp_atag.ads, exp_atag.adb: New file
9234
9235 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9236             Bob Duff  <duff@adacore.com>
9237             Cyrille Comar  <comar@adacore.com>
9238
9239         * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
9240         anonymous, use finalization list of enclosing dynamic scope.
9241         (Expand_N_Package_Declaration): For a library package declaration
9242         without a corresponding body, generate RACW subprogram bodies in the
9243         spec (just as we do for the task activation call).
9244         (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
9245         Is_Abstract_Type. Make sure these are called only when appropriate.
9246         Remove all code for DSP option
9247         (CW_Or_Controlled_Type): new subprogram.
9248
9249 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
9250             Ed Schonberg  <schonberg@adacore.com>
9251             Gary Dismukes  <dismukes@adacore.com>
9252
9253         * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
9254         parameter. If it is set to true, return a result capped according to
9255         the global upper bound for the index of an entry family.
9256         (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
9257         (Build_Find_Body_Index): Adjust for above change.
9258         (Entry_Index_Expression): Likewise.
9259         (Is_Potentially_Large_Family): New function extracted from...
9260         (Collect_Entry_Families): ...here. Call it to detect whether the family
9261         is potentially large.
9262         (Build_Entry_Count_Expression): If the family is potentially large, call
9263         Family_Size with 'Cap' set to true.
9264         (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
9265         a protected version of an operation declared in the private part of
9266         a protected object, because they may be invoked through a callback.
9267         (Set_Privals): If the type of a private component is an anonymous access
9268         type, do not create a new itype for each protected body.
9269         If the body of a protected operation creates
9270         controlled types (including allocators for class-widetypes), the
9271         body of the corresponding protected subprogram must include a
9272         finalization list.
9273         (Build_Activation_Chain_Entity): Build the chain entity for extended
9274         return statements.
9275         (Type_Conformant_Parameters): Use common predicate Conforming_Types
9276         to determine whether operation overrides an inherited primitive.
9277         (Build_Wrapper_Spec): Add code to examine the parents while looking
9278         for a possible overriding candidate.
9279         (Build_Simple_Entry_Call): Set No_Initialization on the object used to
9280         hold an actual parameter value since its initialization is separated
9281         from the the declaration. Prevents errors on null-excluding access
9282         formals.
9283
9284 2007-04-06  Thomas Quinot  <quinot@adacore.com>
9285             Pablo Oliveira  <oliveira@adacore.com>
9286
9287         * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
9288         Do an Unchecked_Conversion to handle the passage from the Underlying
9289         Type to the Base Type when calling Build_To_Any_Call and
9290         Build_From_Any_Call.
9291         (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
9292         E_Constant, depending upon Variable formal.
9293         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
9294         PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
9295         parameter that requires an extra constrained parameter, declare
9296         temporary for actual as a variable, not a constant.
9297         (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
9298         the unit being compiled is the one that contains the stub type.
9299         Change primitive operation name for the RACW associated with a RAS
9300         from Call to _Call so it cannot clash with any legal identifier.
9301         (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
9302         Is_RAS.
9303         (Append_RACW_Bodies): New subprogram.
9304         (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
9305         Add_Receiving_Stubs_To_Declarations functions.
9306         When expanding a package body, this list correspond to the
9307         statements in the HSS at the end of the pacakge.
9308         When expanding a package spec, this list correspond to the
9309         spec declarations.
9310         (Add_Receiving_Stubs_To_Declarations): Append the function
9311         registering the receiving stubs at the end of the 'Stmts' list.
9312         (RCI_Package_Locator): Pass the new Version generic formal when
9313         instantiating a RCI_Locator package.
9314         (Build_From_Any_Function): To compute the High bound for an
9315         unconstrained array actual, we add the Low bound with the length.
9316         Thus we must convert the low bound and the length to an appropriate
9317         type before doing the sum.
9318         (Build_Subprogram_Receiving_Stubs, PolyORB):
9319          * Retrieve the extra formals parameters at the
9320            end of the parameter stream.
9321          * Use Move_Any_Value to write back out parameters
9322            after executing the request as it is more efficient
9323            than Copy_Any_Value.
9324          * Build the any containing Extra Formals with the
9325            appropriate typecode.
9326         (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
9327         empty Component_List.
9328         (Build_Actual_Object_Declaration): New subprogram. Build and insert into
9329         the tree the declaration for an object that serves as actual parameter
9330         in server-side stubs.
9331         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
9332         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
9333         Use Build_Actual_Object_Declaration to prepare the actuals.
9334         (Add_Parameter_To_NVList): Set the parameter mode to In for
9335         Extra Constrained Parameters.
9336         (Build_General_Calling_Stubs): Set the parameter type to boolean for
9337         Extra Constrained parameters.
9338         (Build_To_Any_Function, Build_From_Any_Function,
9339         Built_TypeCode_Function): When Typ is implicit, call the correct
9340         function with the first not implicit parent type.
9341         (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
9342         (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
9343         typecode from the Etype. Therefore we retrieve the correct typecode
9344         with a call to Get_Any_Type.
9345         (Copy_Specification): Do controlling formal type substitution based on
9346         Is_Controlling_Formal flag, instead of caller-provided object type.
9347         (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
9348         a RACW primitive operation, we might get a subprogram declaration for an
9349         ancestor of the RACW designated type (not for the designated type
9350         itself), in the case where this operation is inherited. In this case we
9351         have no easy means of determining the original tagged type for which
9352         the primitive was declared, so instead we now rely on
9353         Copy_Specification to use the Is_Controlling_Formal flag to determine
9354         which formals require type substitution.
9355
9356 2007-04-06  Robert Dewar  <dewar@adacore.com>
9357             Ed Schonberg  <schonberg@adacore.com>
9358
9359         * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
9360         GNAT.Current_Exception are not allowed if pragma Restrictions
9361         (No_Exception_Propagation) is set and in any case make the associated
9362         handler unsuitable as a target for a local raise statement.
9363         (Expand_Dispatching_Constructor_Call): Replace generation of call to the
9364         run-time subprogram CW_Membership by call to Build_CW_Membership.
9365         (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
9366         by a function call, a temporary must be created before expanding the
9367         Constructor_Call itself, to prevent out-of-order elaboration in the
9368         back-end when stack checking is enabled..
9369
9370 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9371
9372         * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
9373         result are the bounds of the left operand, not the right.
9374
9375 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9376
9377         * exp_strm.adb
9378         (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
9379          discriminant defaults.
9380         (Build_Record_Or_Elementary_Output_Procedure): Ditto.
9381         (Make_Component_List_Attributes): Ditto.
9382
9383 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9384             Bob Duff  <duff@adacore.com>
9385
9386         * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
9387         an association with a box as providing a value even though the
9388         initialization procedure for the type is not available.
9389         (Resolve_Record_Aggregate): Check that a choice of an association with a
9390         box corresponds to a component of the type.
9391         (Resolve_Record_Aggregate): Split Is_Abstract flag into
9392         Is_Abstract_Subprogram and Is_Abstract_Type.
9393
9394         * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
9395         assert.
9396
9397         * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
9398         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
9399         called only when appropriate.
9400
9401 2007-04-06  Olivier Hainque  <hainque@adacore.com>
9402
9403         * g-alleve.ads (Low Level Vector type definitions): Map each to the
9404         associated vector view instead of all to the unsigned char view.
9405
9406         * g-altcon.adb (Generic_Conversions): New internal generic package,
9407         offering facilities for all the Vector/View conversion routines
9408         implemented by this unit.
9409         (To_View/To_Vector - all versions): Reimplemented in a systematic
9410         manner, using the internal Generic_Conversions facilities.
9411
9412 2007-04-06  Pascal Obry  <obry@adacore.com>
9413
9414         * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
9415         string.
9416         (Create): Free the source string before storing the new one.
9417
9418 2007-04-06  Vincent Celier  <celier@adacore.com>
9419
9420         * g-debpoo.adb (Validity): New package with a complete new
9421         implementation of subprograms Is_Valid and Set_Valid.
9422         (Is_Valid): Move to local package Validity
9423         (Set_Valid): Move to local package Validity
9424
9425 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
9426             Pablo Oliveira  <oliveira@adacore.com>
9427
9428         * g-expect.adb (Get_Command_Output): When expanding the output buffer
9429         we must ensure that there is enough place for the new data we are going
9430         to copy in.
9431
9432 2007-04-06  Thomas Quinot  <quinot@adacore.com>
9433
9434         * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
9435         computation.
9436
9437 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
9438             Vincent Celier  <celier@adacore.com>
9439
9440         * gnatcmd.adb (B_Start): Add prefix of binder generated file.
9441         (Stack_String): Add this String that contains the name of the Stack
9442         package in the project file.
9443         (Packages_To_Check_By_Stack): Add this list that contains the packages
9444         to be checked by gnatstack, which are the naming and the stack packages.
9445         (Check_Files): If no .ci files were specified for gnatstack we add all
9446         the .ci files belonging to the projects, including binder generated
9447         files.
9448         (Non_VMS_Usage): Document that gnatstack accept project file switches.
9449         (GNATCmd): Update the B_Start variable if we are in a VMS environment.
9450         Add gnatstack to the list of commands that use project file related
9451         switches, and get the single attribute Switches from the stack package
9452         in a project file when calling gnatstack. Parse the -U flag for
9453         processing files belonging to all projects in the project tree.
9454         Remove all processing for command Setup
9455
9456         * prj-attr.adb: Add new package Stack with single attribute Switches
9457
9458         * vms_conv.ads (Command_Type): Add command Stack.
9459         Move to body declarations that are only used in the body: types Item_Id,
9460         Translation_Type, Item_Ptr, Item and its subtypes.
9461
9462         * vms_conv.adb: (Initialize): Add data for new command Stack.
9463         Add declarations moved from the spec: types Item_Id, Translation_Type,
9464         Item_Ptr, Item and its subtypes.
9465         (Cargs_Buffer): New table
9466         (Cargs): New Boolean global variable
9467         (Process_Buffer): New procedure to create arguments
9468         (Place): Put character in table Buffer or Cargs_Buffer depending on the
9469          value of Cargs.
9470         (Process_Argument): Set Cargs when processing qualifiers for GNAT
9471         COMPILE
9472         (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
9473         empty, for table Cargs_Buffer.
9474         (Initialize): Remove component Setup in Command_List
9475
9476 2007-04-06  Vincent Celier  <celier@adacore.com>
9477
9478         * gprep.adb (Process_Files.Process_One_File): Use full file name when
9479         issuing pragma Source_Reference.
9480
9481 2007-04-06  Emmanuel Briot  <briot@adacore.com>
9482
9483         * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
9484         [[:xdigit:]] character class.
9485         Also raise an exception when an invalid character class is used.
9486
9487 2007-04-06  Pascal Obry  <obry@adacore.com>
9488
9489         * i-cstrea.ads: (fopen): Add encoding parameter.
9490         (freopen): Idem.
9491         Change reference from a-sysdep.c to sysdep.c in comment.
9492         Update copyright notice.
9493         This set of patch add support for the encoding form parameter.
9494
9495         * mingw32.h (S2WSU): New macro to convert from a string to a
9496         wide-string using the UTF-8 encoding. The S2WS macro supports now only
9497         standard 8bits encoding.
9498         (WS2SU): As above but converting from wide-sring to string.
9499         This is needed as it is necessary to have access to both versions in the
9500         runtime for the form parameter encoding support.
9501         This set of patch add support for the encoding form parameter.
9502         (S2WS): Improve implementation to handle cases where the filename is not
9503         UTF-8 encoded. In this case we default to using the current code page
9504         for the conversion.
9505
9506         * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
9507         type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
9508         the constants defined in adaint.h.
9509         (fopen): Add encoding parameter.
9510         (freopen): Idem.
9511
9512         * s-ficobl.ads (AFCB): Add Encoding field to record the filename
9513         encoding. This is needed for the Reset routine (freopen low level-call).
9514
9515         * s-fileio.adb (Open): Decode encoding form parameter and set the
9516         corresponding encoding value into AFCB structure.
9517         (Reset): Pass the encoding value to freopen.
9518         (Close): Move the call to Lock_Task to the beginning of the procedure.
9519
9520 2007-04-06  Geert Bosch  <bosch@adacore.com>
9521             Robert Dewar  <dewar@adacore.com>
9522
9523         * i-fortra.ads: Add Double_Complex type.
9524
9525         * impunit.adb: (Is_Known_Unit): New function
9526         Add Gnat.Byte_Swapping
9527         Add GNAT.SHA1
9528         Add new Ada 2005 units
9529         Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
9530         Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
9531         Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
9532         Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
9533
9534         * impunit.ads (Is_Known_Unit): New function
9535
9536         * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
9537         a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
9538         a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
9539         g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
9540         s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
9541         s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
9542         New files.
9543
9544         * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
9545
9546         * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
9547
9548 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
9549             Arnaud Charlet  <charlet@adacore.com>
9550
9551         * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
9552         __gnat_adjust_context_for_raise.
9553         (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
9554         implementation of floating point operations as native x86 targets.
9555         So the FPU should be initialized in the same way using finit. Fix
9556         floating point operations accuracy issues.
9557         (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
9558         member in struct sigaction, so as to avoid warning for incompatible
9559         pointer types.
9560
9561 2007-04-06 Serguei Rybin  <rybin@adacore.com>
9562
9563         * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
9564         switches from previously loaded tree
9565
9566 2007-04-06  Thomas Quinot  <quinot@adacore.com>
9567
9568         * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
9569         cases where a given dependency has a body or not.
9570         (Write_With_File_Names): New subprogram, common code for the two cases
9571         above.
9572
9573 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9574             Javier Miranda  <miranda@adacore.com>
9575
9576         * lib-xref.ads, lib-xref.adb: 
9577         Modify the loop that collects type references, to include interface
9578         types that the type implements. List each of these interfaces when
9579         building the entry for the type.
9580         (Generate_Definition): Initialize component Def and Typ of new entry
9581         in table Xrefs, to avoid to have these components unitialized.
9582         (Output_References): Split Is_Abstract flag into
9583         Is_Abstract_Subprogram and Is_Abstract_Type.
9584         (Generate_Reference): Add barrier to do not generate the warning
9585         associated with Ada 2005 entities with entities generated by the
9586         expander.
9587
9588 2007-04-06  Robert Dewar  <dewar@adacore.com>
9589             Arnaud Charlet  <charlet@adacore.com>
9590             Vincent Celier  <celier@adacore.com>
9591
9592         * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
9593         Update 'Exception Handling Control' chapter which was outdated.
9594         Minor fix to documentation of -gnatwq
9595         Remove section "Adapting the Run Time to a New C++ Compiler" because
9596         it is now obsolete.
9597         Add passage on need of -nostart-files in some non-ada-main cases.
9598         Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
9599         Update documentation about Interfacing with C++
9600         Add documentation for new gnatmake switch -p
9601         Add missing protocol part in URLs.
9602         Document -gnatyA
9603         Document pragma Compile_Time_Error
9604         Add documentation for Object_Size indicating that stand alone
9605         objects can have a larger size in some cases.
9606         Add node for GNAT.Byte_Swapping, GNAT.SHA1
9607         Update reference to the Ravenscar profile.
9608         Document pragma Unreferenced_Objects
9609
9610         * gnat-style.texi: Fix typo
9611
9612 2007-04-06  Vincent Celier  <celier@adacore.com>
9613
9614         * mlib.adb (Building_Library): Only output "building a library..." in
9615         verbose mode
9616
9617         * mlib-prj.adb (Build_Library): Only output lists of object and ALI
9618         files in verbose mode.
9619
9620         * mlib-utl.adb (Ar): Only output the first object files when not in
9621         verbose mode.
9622         (Gcc): Do not display all the object files if not in verbose mode, only
9623         the first one.
9624
9625 2007-04-06  Robert Dewar  <dewar@adacore.com>
9626
9627         * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
9628         it no longer destroys the contents of Name_Buffer or Name_Len and
9629         non-standard and invalid names are handled better.
9630         (Get_Decoded_Name_String): Improve performance by using
9631         Name_Has_No_Encodings flag in the name table.
9632         (Is_Valid_Name): New function to determine whether a Name_Id is valid.
9633         Used for debugging printouts.
9634
9635 2007-04-06  Robert Dewar  <dewar@adacore.com>
9636             Javier Miranda  <miranda@adacore.com>
9637             Bob Duff  <duff@adacore.com>
9638
9639         * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
9640         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
9641         there is no need to generate always a record_definition_node in case
9642         of synchronized interface types.
9643         (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
9644         (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
9645         illegal in Ada 95, in cases where it is legal. Change the warnings to
9646         errors in other cases. Don't give the error unless the "not null"
9647         parses properly. Correct the source position at which the error occurs.
9648         (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
9649         P_Null_Exclusion, to suppress "not null" warnings.
9650         (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
9651         associated goto statements.
9652
9653         * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
9654         of END RECORD
9655
9656         * scans.ads (Type_Token_Location): New flag
9657
9658         * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
9659         (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
9660         P_Null_Exclusion, to suppress "not null" warnings.
9661
9662 2007-04-06  Robert Dewar  <dewar@adacore.com>
9663             Javier Miranda  <miranda@adacore.com>
9664             Bob Duff  <duff@adacore.com>
9665             Vincent Celier  <celier@adacore.com>
9666
9667         * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
9668         (Extensions_Allowed): No longer sets Ada_Version
9669         Entry for pragma Unreferenced_Objects
9670
9671         * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
9672         system.tasking if pragma priority used in a procedure
9673         (Analyze_Pragma, case Warning): Handle dot warning switches
9674         (Process_Compile_Time_Warning_Or_Error): New procedure
9675         (Analyze_Pragma): Add processing for Compile_Time_Error
9676         Add support for extra arguments External_Name and Link_Name.
9677         Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
9678         (Process_Import_Or_Interface): Add support for the use of pragma Import
9679         with tagged types.
9680         (Extensions_Allowed): No longer affects Ada_Version
9681         (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
9682         Is_Abstract_Type. Make sure these are called only when appropriate.
9683         Add processing for pragma Unreferenced_Objects
9684
9685         * snames.h, snames.ads, snames.adb: Add entry for pragma
9686         Compile_Time_Error
9687         Add new standard name Minimum_Binder_Options for new gprmake
9688         Add new standard names for gprmake: Archive_Suffix,
9689         Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
9690         Library_Support, Library_Version_Options,
9691         Shared_Library_Minimum_Options,
9692         Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
9693         Change Name_Call to Name_uCall so that it cannot clash with a legal
9694         subprogram name.
9695         Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
9696         Append C_Plus_Plus to convention identifiers as synonym for CPP
9697         Add new standard names Stack and Builder_Switches
9698         Add new standard names: Compiler_Minimum_Options, Global_Config_File,
9699         Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
9700         Run_Path_Option, Toolchain_Version.
9701         Entry for pragma Unreferenced_Objects
9702
9703         * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
9704         switches, without repetition of "eD". Make sure that last character of
9705         -gnatep= switch is not taken as -gnat switch character.
9706         Complete rewrite of circuit for handling saving compilation options
9707         Occasioned by need to support dot switchs for -gnatw, but cleans up
9708         things in general.
9709         -gnatX does not affect Ada_Version
9710         Include -gnatyA in -gnatg style switches
9711
9712         * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
9713         warnings on return objects.
9714         (Warn_On_Useless_Assignment): Exclude warnings on return objects
9715         (Set_Dot_Warning_Switch): New procedure
9716         (Check_References): Add missing case of test for
9717         Has_Pragma_Unreferenced_Objects
9718         (Output_Unreferenced_Messages): Implement effect of new pragma
9719         Unreferenced_Objects, remove special casing of limited controlled
9720         variables.
9721
9722 2007-04-06  Vincent Celier  <celier@adacore.com>
9723
9724         * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
9725         the default project path, initially done during elaboration of the
9726         package.
9727         If the prefix returned by Sdefault is null, get the prefix from a call
9728         to Executable_Prefix_Path.
9729         (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
9730         null.
9731
9732         * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
9733         canonical directory name to open the directory from which files are
9734         retrieved.
9735         (Record_Other_Sources): Idem.
9736         (Locate_Directory): Add the possibility to create automatically missing
9737         directories when Setup_Projects is True.
9738         Call Locate_Directory so that the directory will be created when
9739         Setup_Projects is True, for object dir, library dir, library ALI dir,
9740         library source copy dir and exec dir.
9741
9742         * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
9743         versions of GNAT.
9744
9745 2007-04-06  Robert Dewar  <dewar@adacore.com>
9746
9747         * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
9748         Use First/Next_Component_Or_Discriminant
9749         (Analyze_Record_Representation_Clause):
9750         Use First/Next_Component_Or_Discriminant
9751         (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
9752         (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
9753         definition if type is unconstrained.
9754         (Adjust_Record_For_Reverse_Bit_Order): New procedure
9755         (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
9756         Is_Abstract_Subprogram and Is_Abstract_Type.
9757         (Adjust_Record_For_Reverse_Bit_Order): New procedure
9758
9759         * repinfo.adb (List_Record_Info): Use First/
9760         Next_Component_Or_Discriminant.
9761
9762         * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
9763         New procedure.
9764
9765         * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
9766         Include -gnatyA in default switches
9767
9768         * opt.ads: (Warn_On_Non_Local_Exception): New flag
9769         (Warn_On_Reverse_Bit_Order): New flag
9770         (Extensions_Allowed): Update the documentation.
9771         (Warn_On_Questionable_Missing_Parens): Now on by default
9772
9773         * usage.adb: Add documentation of -gnatw.x/X switches
9774         Document new -gnatyA style switch
9775         -gnatq warnings are on by default
9776
9777 2007-04-06  Ed Falis  <falis@adacore.com>
9778
9779         * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
9780         full word is no longer compared twice.
9781
9782 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9783
9784         * sem_ch10.adb (Install_Limited_Context_Clauses.
9785         Expand_Limited_With_Clause): Use a new copy of selector name in the
9786         call to Make_With_Clause. This fixes the tree structure for ASIS
9787         purposes. Nothing is changed in the compiler behaviour.
9788         (Process_Body_Clauses): Handle properly use clauses whose prefix is
9789         a package renaming.
9790         (Install_Limited_With_Clauses): Do not install non-limited view when it
9791         is still incomplete.
9792
9793 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9794             Gary Dismukes  <dismukes@adacore.com>
9795
9796         * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
9797         when capturing size information, instead of base type, which for a
9798         formal array type will be the unconstrained type.
9799         (Analyze_Formal_Object_Declaration): Add check for illegal default
9800         expressions for a formal in object of a limited type.
9801         (Instantiate_Object): Ditto.
9802         (Check_Formal_Package_Instance): Skip entities that are formal objects,
9803         because they were defaulted in the formal package and no check applies
9804         to them.
9805         (Check_Formal_Package_Instance): Extend conformance check to other
9806         discrete types beyond Integer.
9807         (Process_Default): Copy directly the unmatched formal. A generic copy
9808         has already been performed in Analyze_Formal_Package.
9809         (Analyze_Associations): If a formal subprogram has no match, check for
9810         partial parametrization before looking for a default, to prevent
9811         spurious errors.
9812         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
9813         not set the instantiation environment before analyzing the actuals.
9814         Fixes regression on 8515-003 with implementation of AI-133.
9815         Set_Instance_Env checks whether the generic unit is a predefined
9816         unit, in which case the instance must be analyzed with the latest Ada
9817         mode. This setting must take place after analysis of the actuals,
9818         because the actuals must be analyzed and frozen in the Ada mode extant
9819         outside of the current instantiation.
9820         (Save_Env, Restore_Env): Preserve and restore the configuration
9821         parameters so that predefined units can be compiled in the proper Ada
9822         mode.
9823         (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
9824         Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
9825         and Is_Abstract_Type.
9826         (Analyze_Formal_Package): For better error recovery, Add exception
9827         handler to catch Instantion_Error, which can be raised in
9828         Analyze_Associations
9829
9830 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9831             Bob Duff  <duff@adacore.com>
9832             Gary Dismukes  <dismukes@adacore.com>
9833
9834         * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
9835         prefix type is a discriminated subtype of the type of the formal.
9836         (Analyze_Allocator): Collect all coextensions regardless of the context.
9837         Whether they can be allocated statically is determined in exp_ch4.
9838         (Analyze_Selected_Component): If the prefix is a limited view and the
9839         non-limited view is available, use the non-limited one.
9840         (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
9841         therefore illegal), suggest a qualified expression rather than a type
9842         conversion, because a type conversion would be illegal in this context.
9843         (Anayze_Allocator): Trace recursively all nested allocators so that all
9844         coextensions are on the corresponding list for the root. Do no mark
9845         coextensions if the root allocator is within a declaration for a stack-
9846         allocated object, because the access discriminants will be allocated on
9847         the stack as well.
9848         (Analyze_Call): Remove restriction on calls to limited functions for the
9849         cases of generic actuals for formal objects, defaults for formal objects
9850         and defaults for record components.
9851         (Analyze_Allocator): Before analysis, chain coextensions on the proper
9852         element list. Their expansion is delayed until the enclosing allocator
9853         is processed and its finalization list constructed.
9854         (Try_Primitive_Operation): If the prefix is a concurrent type, looks
9855         for an operation with the given name among the primitive operations of
9856         the corresponding record type.
9857         (Analyze_Selected_Component): If the prefix is a task type that
9858         implements an interface, and there is no entry with the given name,
9859         check whether there is another primitive operation (e.g. a function)
9860         with that name.
9861         (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
9862         properly the indexing of a function call written in prefix form, where
9863         the function returns an array type, and all parameters of the function
9864         except the first have defaults.
9865         (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
9866         the original operands, rather than relocating them, for efficiency and
9867         to work properly when an operand is overloaded.
9868         (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
9869         Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
9870         (Analyze_Selected_Component): If the prefix is a private extension, only
9871         scan the visible components, not those of the full view.
9872         (Try_Primitive_Operation): If the operation is a procedure, collect all
9873         possible interpretations, as for a function, because in the presence of
9874         classwide parameters several primitive operations of the type can match
9875         the given arguments.
9876
9877 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9878             Robert Dewar  <dewar@adacore.com>
9879
9880         * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
9881         tag-indeterminate call to an abstract function, when the left-hand side
9882         is not classwide.
9883         (Analyze_Loop_Statement): Improve detection of infinite loops
9884
9885 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9886             Thomas Quinot  <quinot@adacore.com>
9887
9888         * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
9889         out of Analyze_Package_Declaration, because processing must be applied
9890         to package bodies as well, for deferred constants completed by pragmas.
9891         (Analyze_Package_Declaration): When the package declaration being
9892         analyzed does not require an explicit body, call Check_Completion.
9893         (May_Need_Implicit_Body): An implicit body is required when a package
9894         spec contains the declaration of a remote access-to-classwide type.
9895         (Analyze_Package_Body): If the package contains RACWs, append the
9896         pending subprogram bodies generated by exp_dist at the end of the body.
9897         (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
9898         Is_Abstract_Subprogram and Is_Abstract_Type.
9899         (Preserve_Full_Attributes): The full entity list is not an attribute
9900         that must be preserved from full to partial view.
9901
9902         * sem_dist.adb (Add_RAS_Dereference_TSS):
9903         Change primitive name to _Call so it cannot clash with any legal
9904         identifier, and be special-cased in Check_Completion.
9905         Mark the full view of the designated type for the RACW associated with
9906         a RAS as Comes_From_Source to get proper view switching when installing
9907         private declarations.
9908         Provite a placeholder nested package body along with the nested spec
9909         to have a place for Append_RACW_Bodies to generate the calling stubs
9910         and stream attributes.
9911
9912 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9913             Robert Dewar  <dewar@adacore.com>
9914
9915         * sem_ch8.adb (Has_Components): If the argument is an incomplete type
9916         that is a limited view, check the non-limited view if available.
9917         (Undefined): Refine error message for missing with of Text_IO
9918         (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
9919         to distinguish real missing with cases.
9920         Fix format of all missing with messages
9921         (Analyze_Subprogram_Renaming): Emit proper error message on illegal
9922         renaming as body when renamed entity is abstract.
9923
9924 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9925             Javier Miranda  <miranda@adacore.com>
9926
9927         * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
9928         predicate recursive, to handle complex expressions on literals whose
9929         spurious ambiguity comes from the abstract interpretation of some
9930         subexpression.
9931         (Interface_Present_In_Ancestor): Add support to concurrent record
9932         types.
9933         (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
9934         Is_Abstract_Subprogram and Is_Abstract_Type.
9935
9936 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9937             Javier Miranda  <miranda@adacore.com>
9938
9939         * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
9940         dereference of a local object R created as a reference to another
9941         object O, use the access level of O.
9942         (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
9943         rather than local Same_Formal_Type, to check whether protected operation
9944         overrides an inherited one.
9945         (Same_Formal_Type): New predicate, used when matching signatures of
9946         overriding synchronized operations, to handle the case when a formal
9947         has a type that is a generic actual.
9948         (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
9949         predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
9950         (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
9951         syntactic ambiguities involving indexing of function calls that return
9952         arrays.
9953         (Abstract_Interface_List): New subprogram that returns the list of
9954         abstract interfaces associated with a concurrent type or a
9955         concurrent record type.
9956         (Interface_Present_In_Parent): New subprogram used to check if a
9957         given type or some of its parents implement a given interface.
9958         (Collect_Abstract_Interfaces): Add support for concurrent types
9959         with interface types.
9960         (Has_Abstract_Interfaces): Add support for concurrent types with
9961         interface types.
9962         (Is_Parent): New subprogram that determines whether E1 is a parent
9963         of E2. For a concurrent type its parent is the first element of its
9964         list of interface types; for other types this function provides the
9965         same result than Is_Ancestor.
9966         (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
9967         (Collect_Synchronized_Interfaces): Removed because the subprogram
9968         Collect_Abstract_Interfaces provides this functionality.
9969         (Collect_Abstract_Interfaces): Minor update to give support to
9970         concurrent types and thus avoid undesired code duplication.
9971         (Get_Subprogram_Entity): Handle entry calls.
9972         (May_Be_Lvalue): Include actuals that appear as in-out parameters in
9973         entry calls.
9974         (Enter_Name): Do not give -gnatwh hiding warning for record component
9975         entities, they never result in hiding.
9976
9977 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9978             Robert Dewar  <dewar@adacore.com>
9979
9980         * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
9981         to chain nested components that are allocators for access discriminants
9982         of the enclosing object.
9983         Add N_Push and N_Pop nodes
9984         New field Exception_Label added
9985         (Local_Raise_Statements): New field in N_Exception_Handler_Node
9986         (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
9987         (Is_Coextension): New flag for allocators, to mark allocators that
9988         correspond to access discriminants of dynamically allocated objects.
9989         (N_Block_Statement): Document the fact that the corresponding entity
9990         can be an E_Return_Statement.
9991         (Is_Coextension): New flag for allocators.
9992         Remove all code for DSP option
9993
9994         * sprint.ads, sprint.adb: Display basic information for class_wide
9995         subtypes. Add handling of N_Push and N_Pop nodes
9996
9997 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
9998
9999         * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
10000         before propagating exception.
10001
10002 2007-04-06  Olivier Hainque  <hainque@adacore.com>
10003
10004         * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
10005         an address always within the call instruction from a return address.
10006
10007 2007-04-06  Olivier Hainque  <hainque@adacore.com>
10008             Eric Botcazou  <botcazou@adacore.com>
10009
10010         * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
10011         expression with a COMPOUND_EXPR including the call instead of emitting
10012         the call directly here.
10013         (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
10014         high bound is constant and the slice is empty.  Tidy.
10015         (tree_transform, case N_Op_Not): Handle properly the case where the
10016         operation applies to a private type whose full view is a modular type.
10017         (Case_Statement_To_gnu): If an alternative is an E_Constant with an
10018         Address_Clause, use the associated Expression as the GNAT tree
10019         representing the choice value to ensure the corresponding GCC tree is
10020         of the proper kind.
10021         (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
10022         instead of just the operands, as the base GCC stabilize_reference does.
10023         <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
10024         requested; otherwise fail.
10025         (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
10026
10027 2007-04-06  Thomas Quinot  <quinot@adacore.com>
10028
10029         * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
10030         implementation of UI_Div.
10031         (UI_Div): Reimplement as a call to UI_Div_Rem.
10032         (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
10033         remainder, avoiding the cost of a multiplication and a subtraction.
10034         (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
10035         provides both quotient and remainder in a single computation.
10036         (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
10037         functions for uint.
10038         (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
10039         is undefined if the given n is not inversible.
10040
10041 2007-04-06  Olivier Hainque  <hainque@adacore.com>
10042
10043         * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
10044         BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
10045         opcodes.
10046
10047 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
10048             Olivier Hainque  <hainque@adacore.com>
10049
10050         * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
10051         when updating the contents of the old pointer to an unconstrained array.
10052         (end_subprog_body): Set error_gnat_node to Empty.
10053         (write_record_type_debug_info): Do not be unduly sparing with our bytes.
10054         (unchecked_convert): For subtype to base type conversions, require that
10055         the source be a subtype if it is an integer type.
10056         (builtin_decls): New global, vector of available builtin functions.
10057         (gnat_pushdecl): Add global builtin function declaration nodes to the
10058         builtin_decls list.
10059         (gnat_install_builtins): Adjust comments.
10060         (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
10061         calling gnat_pushdecl, so that it knows when it handed a builtin
10062         function declaration node.
10063         (builtin_decl_for): Search the builtin_decls list.
10064
10065 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
10066
10067         * s-stchop-vxworks.adb: 
10068         (Stack_Check): Raise Storage_Error if the argument has wrapped around.
10069
10070 2007-04-06  Robert Dewar  <dewar@adacore.com>
10071             Arnaud Charlet  <charlet@adacore.com>
10072
10073         * a-diroro.ads: Inserted the pragma Unimplemented_Unit
10074
10075         * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
10076         of files
10077         Add mention of -Sev (set initialize_scalars option from environment
10078         variable at run time) in gnatbind usage message.
10079
10080         * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
10081
10082         * fname-uf.ads: Minor comment fix
10083
10084         * osint.ads: Change pragma Elaborate to Elaborate_All
10085
10086         * par-load.adb: Add documentation.
10087
10088         * sem_cat.ads, sem_cat.adb: Minor code reorganization
10089
10090         * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
10091
10092         * s-secsta.ads: Extra comments
10093
10094         * s-soflin.ads: Minor comment fixes
10095
10096         * s-stratt.ads (Block_Stream_Ops_OK): Removed.
10097
10098         * s-wchcon.ads: Minor comment addition
10099
10100         * treepr.adb: Minor change in message
10101         (Print_Name,Print_Node): Make these debug printouts more robust: print
10102         "no such..." instead of crashing on bad input.
10103
10104 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
10105
10106         * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
10107         instead of gnat_signed_or_unsigned_type.
10108         * utils.c (gnat_signed_or_unsigned_type): Remove.
10109         * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
10110         * gigi.h (gnat_signed_or_unsigned_type): Remove
10111
10112 2007-03-09  Roger Sayle  <roger@eyesopen.com>
10113
10114         * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
10115         fold with the result of buildN.
10116         * decl.c (gnat_to_gnu_entity): Likewise.
10117         * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
10118         * utils.c (finish_record_type, merge_sizes, max_size, convert):
10119         Likewise.
10120         * utils2.c (gnat_truthvalue_conversion, compare_arrays,
10121         nonbinary_modular_operation, build_binary_op, build_unary_op,
10122         build_cond_expr): Likewise.
10123
10124         * utils.c (convert): Use fold_build1 when casting values to void.
10125         * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
10126         fold_convert instead of convert when appropriate.
10127
10128 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
10129
10130         * Make-lang.in: Add install-pdf target as copied from
10131         automake v1.10 rules.
10132
10133 2007-02-28  Andreas Schwab  <schwab@suse.de>
10134
10135         * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
10136         $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
10137         (doc/gnat-style.info): Likewise.
10138
10139 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
10140
10141         * gnat-style.texi: Standardize title page.
10142         * gnat_rm.texi: Likewise.
10143         * gnat_ugn.texi: Likewise.
10144
10145 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
10146
10147         * decl.c (annotate_value): Adjust for refactoring of tree_map
10148         hierarchy.
10149
10150 2007-02-24  Mark Mitchell  <mark@codesourcery.com>
10151
10152         * decl.c (annotate_value): Adjust for refactoring of tree_map
10153         hierarchy.
10154
10155 2007-02-21  Ed Schonberg  <schonberg@adacore.com>
10156
10157         PR ada/18819
10158         * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
10159         untagged derived type, add hidden components to keep discriminant
10160         layout consistent, when a given discriminant of the derived type
10161         constraints several discriminants of the parent type.
10162
10163 2007-02-16  Eric Botcazou  <ebotcazou@adacore.com>
10164             Sandra Loosemore  <sandra@codesourcery.com>
10165
10166         * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
10167         build the call expression.
10168         (gnat_stabilize_reference_1): Handle tcc_vl_exp.
10169         * utils.c (max_size) <tcc_exceptional>: Delete.
10170         <tcc_vl_exp>: New case.
10171         <tcc_expression>: Delete CALL_EXPR subcase.
10172         (build_global_cdtor): Use build_call_nary instead of build3.
10173         * utils2.c (build_call_1_expr): Likewise.
10174         (build_call_2_expr): Likewise.
10175         (build_call_0_expr): Likewise.
10176         (build_call_alloc_dealloc): Likewise.
10177
10178 2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
10179
10180         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
10181         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
10182         and _Unwind_SWord with _sleb128_t.
10183
10184 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
10185
10186         * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
10187         * decl.c: Include gt-ada-decl.h.
10188         (annotate_value_cache): New.
10189         (annotate_value): Use it instead of TREE_COMPLEXITY.
10190
10191 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
10192
10193         * misc.c, utils2.c: Fix comment typos.
10194
10195 2007-01-24  Roger Sayle  <roger@eyesopen.com>
10196
10197         * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
10198         TREE_CONSTANT_OVERFLOW.
10199         (allocatable_size_p, annotate_value): Likewise.
10200         * trans.c (gnat_to_gnu): Likewise.
10201         * utils.c (unchecked_convert): Likewise.
10202         * utils2.c (build_simple_component_ref): Likewise.
10203
10204 2007-01-23  Richard Guenther  <rguenther@suse.de>
10205
10206         PR bootstrap/30541
10207         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
10208         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
10209         (gnatboot3): Likewise.
10210         (GNATBIND): Do not define.
10211         * Makefile.in (GNATBIND): Do not define.
10212
10213 2007-01-08  Richard Guenther  <rguenther@suse.de>
10214
10215         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
10216         * trans.c (gnat_to_gnu): Likewise.
10217
10218 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
10219
10220         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
10221         * adaint.c: Likewise.
10222
10223 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
10224
10225         Merge from gimple-tuples-branch:
10226         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
10227
10228         * ada-tree.h (lang_tree_node): Handle gimple tuples.
10229         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
10230         GIMPLE_MODIFY_STMT.
10231
10232 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
10233
10234         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
10235         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
10236         Fix typos.
10237
10238 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
10239
10240         PR ada/27936
10241         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
10242         if the initializer takes into account the padding.
10243
10244 2006-11-11  Richard Guenther  <rguenther@suse.de>
10245
10246         * trans.c (maybe_stabilize_reference): Remove handling of
10247         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
10248
10249 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
10250
10251         PR ada/29707
10252         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
10253         (To_Target_Priority): New function.
10254
10255 2006-10-31  Robert Dewar  <dewar@adacore.com>
10256
10257         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
10258         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
10259         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
10260         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
10261         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
10262         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
10263         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
10264         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
10265         a-szbzha.adb: Minor reformatting. Fix header.
10266
10267         * a-numaux-x86.adb: Add parentheses for use of unary minus
10268         * a-ngcefu.adb: Supply missing parentheses for unary minus
10269         * a-ngcoty.adb: Add parens for use of unary minus
10270         * a-ngelfu.adb: Add missing parens for unary minus
10271         * a-tifiio.adb: Add parentheses for uses of unary minus
10272
10273 2006-10-31  Robert Dewar  <dewar@adacore.com>
10274             Bob Duff  <duff@adacore.com>
10275             Ed Schonberg  <schonberg@adacore.com>
10276
10277         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
10278         with multiplying operator.
10279         (Expected_Type_Is_Any_Real): New function to determine from the Parent
10280         pointer whether the context expects "any real type".
10281         (Resolve_Arithmetic_Op): Do not give an error on calls to the
10282         universal_fixed "*" and "/" operators when they are used in a context
10283         that expects any real type. Also set the type of the node to
10284         Universal_Real in this case, because downstream processing requires it
10285         (mainly static expression evaluation).
10286         Reword some continuation messages
10287         Add some \\ sequences to continuation messages
10288         (Resolve_Call): Refine infinite recursion case. The test has been
10289         sharpened to eliminate some false positives.
10290         Check for Current_Task usage now includes entry barrier, and is now a
10291         warning, not an error.
10292         (Resolve): If the call is ambiguous, indicate whether an interpretation
10293         is an inherited operation.
10294         (Check_Aggr): When resolving aggregates, skip associations with a box,
10295         which are priori correct, and will be replaced by an actual default
10296         expression in the course of expansion.
10297         (Resolve_Type_Conversion): Add missing support for conversion from
10298         a class-wide interface to a tagged type. Minor code cleanup.
10299         (Valid_Tagged_Converion): Add support for abstact interface type
10300         conversions.
10301         (Resolve_Selected_Component): Call Generate_Reference here rather than
10302         during analysis, and use May_Be_Lvalue to distinguish read/write.
10303         (Valid_Array_Conversion): New procedure, abstracted from
10304         Valid_Conversion, to incorporate accessibility checks for arrays of
10305         anonymous access types.
10306         (Valid_Conversion): For a conversion to a numeric type occurring in an
10307         instance or inlined body, no need to check that the operand type is
10308         numeric, since this has been checked during analysis of the template.
10309         Remove legacy test for scope name Unchecked_Conversion.
10310
10311         * sem_res.ads: Minor reformatting
10312
10313         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
10314         (PE_Current_Task_In_Entry_Body): New exception code
10315         (SE_Restriction_Violation): Removed, not used
10316
10317         * a-except.ads:  Update comments.
10318
10319         * types.h, types.ads: Add definition for Validity_Check
10320         (PE_Current_Task_In_Entry_Body): New exception code
10321         (SE_Restriction_Violation): Removed, not used
10322
10323 2006-10-31  Thomas Quinot  <quinot@adacore.com>
10324
10325         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
10326         error status.
10327
10328 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
10329             Jose Ruiz  <ruiz@adacore.com>
10330
10331         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
10332         part of Ada.Calendar: all subprogram raise Unimplemented.
10333         (Split_W_Offset): Temp function body, raising Unimplemented
10334
10335         * a-calend.ads, a-calend-vms.ads: 
10336         Add imported variable Invalid_TZ_Offset used to designate targets unable
10337         to support time zones.
10338         (Unimplemented): Temporary function raised by the body of new
10339         subprograms below.
10340         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
10341         unit provides handling of leap seconds and is used by the new Ada 2005
10342         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
10343         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
10344         version returns an extra value which is the offset to UTC.
10345
10346         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
10347         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
10348         (Split_W_Offset): New function body.
10349         (Time_Of): When a date is close to UNIX epoch, compute the time for
10350         that date plus one day (that amount is later substracted after
10351         executing mktime) so there are no problems with time zone adjustments.
10352
10353         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
10354
10355         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
10356         a-catizo.ads, a-catizo.adb: New files.
10357
10358         * impunit.adb: Add new Ada 2005 entries
10359
10360         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
10361         Rename all occurences of "__gnat_localtime_r" to
10362         "__gnat_localtime_tzoff".
10363         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
10364         zone data and calculate the GMT offset.
10365         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
10366         Use the field "tm_gmtoff" to extract the GMT offset.
10367         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
10368         the external variable "timezone" to calculate the GMT offset.
10369
10370 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
10371             Jose Ruiz  <ruiz@adacore.com>
10372
10373         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb, 
10374         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads, 
10375         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
10376         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
10377         System.Any_Priority to a POSIX priority on the target.
10378
10379         * system-linux-ia64.ads: 
10380         Extend range of Priority types on Linux to use the whole range made
10381         available by the system.
10382
10383         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
10384         function maps from System.Any_Priority to a POSIX priority on the
10385         target.
10386         (PTHREAD_PRIO_PROTECT): Set real value.
10387         (PTHREAD_PRIO_INHERIT): Now a function.
10388         (SIGCPUFAIL): New signal.
10389         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
10390         are documented as reserved by the OS.
10391
10392         * system-aix.ads: Use the full range of priorities provided by the
10393         system on AIX.
10394
10395         * s-taprop-posix.adb: Call new function To_Target_Priority.
10396         (Set_Priority): Take into account Task_Dispatching_Policy and
10397         Priority_Specific_Dispatching pragmas when determining if Round Robin
10398         must be used for scheduling the task.
10399
10400         * system-linux-x86_64.ads, system-linux-x86.ads, 
10401         system-linux-ppc.ads: Extend range of Priority types on Linux to use
10402         the whole range made available by the system.
10403
10404         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb, 
10405         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb, 
10406         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
10407         when deallocating the TCB in order to avoid potential references to
10408         deallocated data.
10409         (Set_Priority): Take into account Task_Dispatching_Policy and
10410         Priority_Specific_Dispatching pragmas when determining if Round Robin
10411         or FIFO within priorities must be used for scheduling the task.
10412
10413         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
10414         the Thread field (to be used internally by the run-time system) and the
10415         kernel-level task id in the LWP field (to be used by the debugger).
10416         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
10417         instance, and propagate the current task options to the spawned task.
10418         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
10419         (Initialize): Set Round Robin dispatching when the corresponding pragma
10420         is in effect.
10421
10422 2006-10-31  Robert Dewar  <dewar@adacore.com>
10423
10424         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
10425         system-linux-hppa.ads, system-hpux-ia64.ads, 
10426         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads, 
10427         system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
10428         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
10429         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads, 
10430         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
10431         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
10432         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
10433         Default_Bit_Order) to kill constant condition warnings for references
10434         to this switch.
10435
10436 2006-10-31  Vincent Celier  <celier@adacore.com>
10437             Eric Botcazou  <ebotcazou@adacore.com>
10438
10439         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
10440         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
10441         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
10442         Ext_To, when building the library file name
10443
10444         * mlib-tgt-vxworks.adb: ditto.
10445         (Get_Target_Suffix): Add support for x86 targets.
10446
10447         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
10448
10449         * mlib-tgt-darwin.adb: 
10450         Use Append_To, instead of Ext_To, when building the library file name
10451         (Flat_Namespace): New global variable.
10452         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
10453         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
10454         (Link_Shared_Libgcc): Delete.
10455         (Build_Dynamic_Library): Adjust for above changes.
10456         Use Opt package.
10457         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
10458
10459 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
10460
10461         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
10462         (Initialize): Add type conversions required by above change.
10463
10464 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
10465
10466         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
10467         (getpid): New body for this function that uses the underlying taskIdSelf
10468         function for VxWorks 5 and VxWorks 6 in kernel mode.
10469         (unsigned_int): New type, modular to allow logical bit operations.
10470         (taskOptionsGet): New imported function.
10471
10472         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
10473         field to be compliant with the type used by the corresponding operating
10474         system primitive.
10475
10476 2006-10-31  Pascal Obry  <obry@adacore.com>
10477             Eric Botcazou  <ebotcazou@adacore.com>
10478             Vincent Celier  <celier@adacore.com>
10479
10480         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
10481         ASCII version of the registry API. This is needed as the GNAT runtime
10482         is now UNICODE by default.
10483         Include version.h.
10484         (get_gcc_version): Do not hardcode the return value.
10485         (__gnat_file_time_name): On Windows properly set the default returned
10486         value to -1 which corresponds to Invalid_Time.
10487         (__gnat_fopen): New routine. A simple wrapper on all plateforms
10488          except on Windows where it does conversion for unicode support.
10489         (__gnat_freopen): Idem.
10490         (__gnat_locate_exec_on_path): If environment variable PATH does not
10491         exist, return a NULL pointer
10492
10493         * adaint.h: (__gnat_fopen): Declare.
10494         (__gnat_freopen): Likewise.
10495
10496         * mingw32.h (_tfreopen): Define this macro here for older MingW
10497         version.
10498         Activate the unicode support on platforms using a MingW runtime
10499         version 3.9 or newer.
10500
10501         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
10502         This is needed for proper unicode support on Windows.
10503         (freopen): Idem.
10504
10505 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
10506             Nicolas Setton  <setton@adacore.com>
10507             Olivier Hainque  <hainque@adacore.com>
10508             Gary Dismukes  <dismukes@adacore.com>
10509
10510         * gigi.h: (tree_code_for_record_type): Declare.
10511         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
10512         (get_global_renaming_pointers): Rename to
10513         invalidate_global_renaming_pointers.
10514         (static_ctors): Delete.
10515         (static_dtors): Likewise.
10516         (gnat_write_global_declarations): Declare.
10517         (create_var_decl): Adjust descriptive comment to indicate that the
10518         subprogram may return a CONST_DECL node.
10519         (create_true_var_decl): Declare new function, similar to
10520         create_var_decl but forcing the creation of a VAR_DECL node.
10521         (get_global_renaming_pointers): Declare.
10522         (add_global_renaming_pointer): Likewise.
10523
10524         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
10525
10526         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
10527         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
10528         processing.
10529         (gnat_to_gnu_entity): Remove From_With_Type from computation for
10530         imported_p.
10531         <E_Access_Type>: Use the Non_Limited_View as the full view of the
10532         designated type if the pointer comes from a limited_with clause.  Make
10533         incomplete designated type if it is in the main unit and has a freeze
10534         node.
10535         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
10536         Underlying_Full_View similarly.  Return earlier if the full view already
10537         has an associated tree.
10538         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
10539         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
10540         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
10541         reference type built for objects with an address clause.
10542         Use create_true_var_decl with const_flag set for
10543         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
10544         TREE_READONLY set.
10545         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
10546         for Character and Wide_Character types. This info is read by the
10547         dwarf-2 writer, and is needed to be able to use the command "ptype
10548         character" in the debugger.
10549         (gnat_to_gnu_entity): When generating a type representing
10550         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
10551         so that debug writers can distinguish it from ordinary integers.
10552         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
10553         addition to TREE_READONLY to assert the constantness of variables for
10554         elaboration purposes.
10555         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
10556         parameters to call new Einfo function First_Formal_With_Extras.
10557         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
10558         protected type with its corresponding discriminant, to obtain a usable
10559         declaration
10560         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
10561         for a multiple elaboration of the "equivalent" type.
10562         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
10563         into record_global_renaming_pointer.
10564         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
10565         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
10566         <E_Array_Subtype>: Likewise.
10567         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
10568         incomplete subtypes and incomplete subtypes of incomplete types visible
10569         through a limited with clause.
10570         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
10571         the base index type for the maximum size of the array only if they are
10572         constant.
10573         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
10574         expression into a SAVE_EXPR if stabilization failed.
10575
10576         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
10577         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
10578         by lower level compilation passes.
10579         (gnat_genericize): New function, lowering a function body to GENERIC.
10580         Turn the type of RESULT_DECL into a real reference type if the decl
10581         has been marked DECL_BY_REFERENCE, and adjust references to the latter
10582         accordingly.
10583         (gnat_genericize_r): New function. Tree walking callback for
10584         gnat_genericize.
10585         (convert_from_reference, is_byref_result): New functions. Helpers for
10586         gnat_genericize_r.
10587         (create_type_decl): Call gnat_pushdecl before calling
10588         rest_of_decl_compilation, to make sure that field TYPE_NAME of
10589         type_decl is properly set before calling the debug information writers.
10590         (write_record_type_debug_info): The heuristics which compute the
10591         alignment of a field in a variant record might not be accurate. Add a
10592         safety test to make sure no alignment is set to a smaller value than
10593         the alignment of the field type.
10594         (make_dummy_type): Use the Non_Limited_View as the underlying type if
10595         the type comes from a limited_with clause. Do not loop on the full view.
10596         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
10597         (dummy_node_table): New global variable, moved from decl.c.
10598         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
10599         (save_gnu_tree): Use above macros.
10600         (get_gnu_tree): Likewise.
10601         (present_gnu_tree): Likewise.
10602         (init_dummy_type): New function, moved from decl.c. Use above macros.
10603         (make_dummy_type): Likewise.
10604         (tree_code_for_record_type): New function extracted from make_dummy_type
10605         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
10606         (static_ctors): Change it to a vector, make static.
10607         (static_dtors): Likewise.
10608         (end_subprog_body): Adjust for above change.
10609         (build_global_cdtor): Moved from trans.c.
10610         (gnat_write_global_declarations): Emit global constructor and
10611         destructor, and call cgraph_optimize before emitting debug info for
10612         global declarations.
10613         (global_decls): New global variable.
10614         (gnat_pushdecl): Store the global declarations in global_decls, for
10615         later use.
10616         (gnat_write_global_declarations): Emit debug information for global
10617          declarations.
10618         (create_var_decl_1): Former create_var_decl, with an extra argument to
10619          state whether the creation of a CONST_DECL is allowed.
10620         (create_var_decl): Behavior unchanged. Now a wrapper around
10621         create_var_decl_1 allowing CONST_DECL creation.
10622         (create_true_var_decl): New function, similar to create_var_decl but
10623         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
10624         (create_field_decl): Do not always mark the field as addressable
10625         if its type is an aggregate.
10626         (global_renaming_pointers): New static variable.
10627         (add_global_renaming_pointer): New function.
10628         (get_global_renaming_pointers): Likewise.
10629
10630         * misc.c (gnat_dwarf_name): New function.
10631         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
10632         (gnat_post_options): Add comment about structural alias analysis.
10633         (gnat_parse_file): Do not call cgraph_optimize here.
10634         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
10635
10636         * trans.c (process_freeze_entity): Don't abort if we already have a
10637         non dummy GCC tree for a Concurrent_Record_Type, as it might
10638         legitimately have been elaborated while processing the associated
10639         Concurrent_Type prior to this explicit freeze node.
10640         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
10641         exception handler volatile if it is of variable size.
10642         (process_type): Remove bypass for types coming from a limited_with
10643         clause.
10644         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
10645         actual, convert the corresponding gnu_actual to the real destination
10646         type when necessary.
10647         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
10648         originally TREE_READONLY but whose elaboration cannot be performed
10649         statically.
10650         Part of fix for F504-021.
10651         (tree_transform, subprogram cases): Change loops on formal parameters to
10652         call new Einfo function First_Formal_With_Extras.
10653         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
10654         stemming from type conversion for the lhs.
10655         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
10656         number of bits per unit for components of records.
10657         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
10658         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
10659         with At_End_Proc after the SJLJ EH cleanup.
10660         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
10661         compilation unit.
10662         (elaborate_all_entities): Do not retest type_annotate_only.
10663         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
10664         result type of an abstract subprogram, which may be an itype associated
10665         with an anonymous access result (related to AI-318-02).
10666         (build_global_cdtor): Move to utils.c.
10667         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
10668         this choice is not a null tree nor an integer constant.
10669         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
10670         on the body of elaboration routines instead of mark_unvisited.
10671         (add_stmt): Do not mark the tree.
10672         (add_decl_expr): Tweak comment.
10673         (mark_unvisited): Delete.
10674         (unshare_save_expr): New static function.
10675         (call_to_gnu): Issue an error when making a temporary around a
10676         procedure call because of non-addressable actual parameter if the
10677         type of the formal is by_reference.
10678         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
10679         after building the elaboration routine.
10680
10681 2006-10-31  Bob Duff  <duff@adacore.com>
10682
10683         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
10684         as finalization-started, so we can raise Program_Error on 'new'.
10685
10686         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
10687         collection has already started.
10688
10689         * s-finimp.ads (Collection_Finalization_Started): Added new special
10690         flag value for indicating that a collection's finalization has started.
10691
10692         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
10693         create a task whose master has already waited for dependent tasks.
10694
10695 2006-10-31  Robert Dewar  <dewar@adacore.com>
10696
10697         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
10698
10699         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads, 
10700         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads, 
10701         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads, 
10702         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads, 
10703         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads, 
10704         a-except-2005.ads: Add pragma Preelaborable_Warning
10705
10706 2006-10-31  Robert Dewar  <dewar@adacore.com>
10707             Jose Ruiz  <ruiz@adacore.com>
10708
10709         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
10710
10711         * ali.adb (Get_Name): Properly handle scanning of wide character names
10712         encoded with brackets notation.
10713         (Known_ALI_Lines): Add S lines to this list.
10714         (Scan_ALI): Acquire S (priority specific dispatching) lines.
10715         New flag Elaborate_All_Desirable in unit table
10716
10717         * ali.ads (Priority_Specific_Dispatching): Add this range of
10718         identifiers to be used for Priority_Specific_Dispatching table entries.
10719         (ALIs_Record): Add First_Specific_Dispatching and
10720         Last_Specific_Dispatching that point to the first and last entries
10721         respectively in the priority specific dispatching table for this unit.
10722         (Specific_Dispatching): Add this table for storing each S (priority
10723         specific dispatching) line encountered in the input ALI file.
10724         New flag Elaborate_All_Desirable in unit table
10725
10726         * bcheck.adb: (Check_Configuration_Consistency): Add call to
10727         Check_Consistent_Dispatching_Policy.
10728         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
10729         verifying that the use of Priority_Specific_Dispatching,
10730         Task_Dispatching_Policy, and Locking_Policy is consistent across the
10731         partition.
10732
10733         * bindgen.adb: (Public_Version_Warning): function removed.
10734         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
10735         required information from ALI files in order to initialize the table
10736         containing the specific dispatching policy.
10737         (Gen_Adainit_Ada): Generate the variables required for priority specific
10738         dispatching entries (__gl_priority_specific_dispatching and
10739         __gl_num_specific_dispatching).
10740         (Gen_Adainit_C): Generate the variables required for priority specific
10741         dispatching entries (__gl_priority_specific_dispatching and
10742         __gl_num_specific_dispatching).
10743         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
10744         pragma entries.
10745         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
10746         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
10747         (Tab_To): Removed.
10748         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
10749         a call to gnat_set_globals.
10750         Generate a string containing settings from
10751         Priority_Specific_Dispatching pragma entries.
10752         (Gen_Object_Files_Options): Do not include the runtime libraries when
10753         pragma No_Run_Time is specified.
10754
10755         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
10756         consistency with s-intman-posix.adb.
10757         (__gnat_error_handler, case FreeBSD): Account for the fact that the
10758         handler is installed with SA_SIGINFO.
10759         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
10760         FreeBSD ZCX support, copied from Linux version.
10761         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
10762         sigfillset, and sigemptyset so the routines defined by MaRTE.
10763         (__gl_priority_specific_dispatching): Add this variable that stores the
10764         string containing priority specific dispatching policies in the
10765         partition.
10766         (__gl_num_specific_dispatching): Add this variable that indicates the
10767         highest priority for which a priority specific dispatching pragma
10768         applies.
10769         (__gnat_get_specific_dispatching): Add this routine that returns the
10770         priority specific dispatching policy, as set by a
10771         Priority_Specific_Dispatching pragma appearing anywhere in the current
10772         partition. The input argument is the priority number, and the result
10773         is the upper case first character of the policy name.
10774         (__gnat_set_globals): Now a dummy function.
10775         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
10776         mechargs instead of sigargs, as the latter can be retrieved from the
10777         former and sigargs is not what we want on ia64.
10778         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
10779         mechargs argument.
10780         (__gnat_adjust_context_for_raise, ia64-vms): New function.
10781         (tasking_error): Remove unused symbol.
10782         (_abort_signal): Move this symbol to the IRIX specific part since this
10783         is the only target that uses this definition.
10784         (Check_Abort_Status): Move this symbol to the IRIX specific part since
10785         this is the only target that uses this definition.
10786         (Lock_Task): Remove unused symbol.
10787         (Unlock_Task): Remove unused symbol.
10788
10789         * lib-writ.adb (Write_ALI): Output new S lines for
10790         Priority_Specific_Dispatching pragmas.
10791         Implement new flag BD for elaborate body desirable
10792
10793         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
10794         (Specific_Dispatching): Add this table for storing the entries
10795         corresponding to Priority_Specific_Dispatching pragmas.
10796         Document new BD flag for elaborate body desirable
10797
10798         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
10799         of known pragmas.
10800
10801 2006-10-31  Javier Miranda  <miranda@adacore.com>
10802
10803         * a-tags.ads, a-tags.adb: 
10804         (Predefined_DT): New function that improves readability of the code.
10805         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
10806         Inherit_DT): Use the new function Predefined_DT to improve code
10807         readability.
10808         (Register_Interface_Tag): Update assertion.
10809         (Set_Interface_Table): Update assertion.
10810         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
10811         determining progenitor interfaces in Tags.
10812         (Inherit_CPP_DT): New subprogram.
10813
10814         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
10815         analysis of the thunk code.
10816         (Expand_Interface_Conversion): Handle run-time conversion of
10817         access to class wide types.
10818         (Expand_Dispatching_Call): When generating the profile for the
10819         subprogram itype for a dispatching operation, properly terminate the
10820         formal parameters chaind list (set the Next_Entity of the last formal
10821         to Empty).
10822         (Collect_All_Interfaces): Removed. This routine has been moved to
10823         sem_util and renamed as Collect_All_Abstract_Interfaces.
10824         (Set_All_DT_Position): Hidden entities associated with abstract
10825         interface primitives are not taken into account in the check for
10826         3.9.3(10); this check is done with the aliased entity.
10827         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
10828         interfacing with CPP by default.
10829         (Expand_Interface_Conversion): Add missing support for static conversion
10830         from an interface to a tagged type.
10831         (Collect_All_Interfaces): Add new out formal containing the list of
10832         abstract interface types to cleanup the subprogram Make_DT.
10833         (Make_DT): Update the code to generate the table of interfaces in case
10834         of abstract interface types.
10835         (Is_Predefined_Dispatching_Alias): New function that returns true if
10836         a primitive is not a predefined dispatching primitive but it is an
10837         alias of a predefined dispatching primitive.
10838         (Make_DT): If the ancestor of the type is a CPP_Class and we are
10839         compiling under full ABI compatibility mode we avoid the generation of
10840         calls to run-time services that fill the dispatch tables because under
10841         this mode we currently inherit the dispatch tables in the IP subprogram.
10842         (Write_DT): Emit an "is null" indication for a null procedure primitive.
10843         (Expand_Interface_Conversion): Use an address as the type of the formal
10844         of the internally built function that handles the case in which the
10845         target type is an access type.
10846
10847 2006-10-31  Robert Dewar  <dewar@adacore.com>
10848
10849         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
10850
10851 2006-10-31  Robert Dewar  <dewar@adacore.com>
10852
10853         * bindusg.ads, bindusg.adb:
10854         Change to package and rename procedure as Display, which
10855         now ensures that it only outputs usage information once.
10856
10857 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
10858
10859         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
10860         using RTPs.
10861
10862         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
10863         when using RTPs.
10864
10865 2006-10-31  Robert Dewar  <dewar@adacore.com>
10866             Ed Schonberg  <schonberg@adacore.com>
10867
10868         * treepr.adb: Use new subtype N_Membership_Test
10869
10870         * checks.ads, checks.adb: Add definition for Validity_Check
10871         (Range_Or_Validity_Checks_Suppressed): New function
10872         (Ensure_Valid): Test Validity_Check suppressed
10873         (Insert_Valid_Check): Test Validity_Check suppressed
10874         (Insert_Valid_Check): Preserve Do_Range_Check flag
10875         (Validity_Check_Range): New procedure
10876         (Expr_Known_Valid): Result of membership test is always valid
10877         (Selected_Range_Checks): Range checks cannot be applied to discriminants
10878         by themselves. Disabling those checks must also be done for task types,
10879         where discriminants may be used for the bounds of entry families.
10880         (Apply_Address_Clause_Check): Remove side-effects if address expression
10881         is non-static and is not the name of a declared constant.
10882         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
10883         Code cleanup and new error messages.
10884         (Enable_Range_Check): Test for some cases of suppressed checks
10885         (Generate_Index_Checks): Suppress index checks if index checks are
10886         suppressed for array object or array type.
10887         (Apply_Selected_Length_Checks): Give warning for compile-time detected
10888         length check failure, even if checks are off.
10889         (Ensure_Valid): Do not generate a check on an indexed component whose
10890         prefix is a packed boolean array.
10891         * checks.adb: (Alignment_Checks_Suppressed): New function
10892         (Apply_Address_Clause_Check): New procedure, this is a completely
10893         rewritten replacement for Apply_Alignment_Check
10894         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
10895         we request a discriminal value only in case of discriminants.
10896         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
10897         assignments where the target subtype is unconstrained and the target
10898         object is a parameter or dereference (other aliased cases are known
10899         to be unconstrained).
10900
10901 2006-10-31  Robert Dewar  <dewar@adacore.com>
10902
10903         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
10904         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
10905         vms_conv.adb: Fix bad table increment values (much too small)
10906
10907         * table.adb (Realloc): Make sure we get at least some new elements
10908         Defends against silly small values for table increment
10909
10910 2006-10-31  Robert Dewar  <dewar@adacore.com>
10911             Ed Schonberg  <schonberg@adacore.com>
10912             Bob Duff  <duff@adacore.com>
10913
10914         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
10915         entities. Move other fields around to make this possible
10916         (Is_Derived_Type): Add missing call to Is_Type.
10917         (Extra_Formals): New function for subprograms, entries, subprogram
10918         types.
10919         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
10920         (First_Formal_With_Extras): New function for subprogs, entries, subp
10921         types.
10922         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
10923         Add node information for E_Return_Statement.
10924         (Elaborate_Body_Desirable): New flag
10925         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
10926         to be Is_Inherently_Limited_Type, because return-by-reference has
10927         no meaning in Ada 2005.
10928         (E_Return_Statement): New entity kind.
10929         (Return_Applies_To): Field of E_Return_Statement.
10930         (Is_Return_Object): New flag in object entities.
10931         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
10932         (Must_Have_Preelab_Init): New flag
10933         (Known_To_Have_Preelab_Init): New flag
10934         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
10935         (Is_Visible_Formal): New flag on entities in formal packages.
10936         (Low_Bound_Known): New flag
10937         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
10938         Incomplete_Kind.
10939         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
10940         output when Id is an incomplete subtype.
10941
10942 2006-10-31  Robert Dewar  <dewar@adacore.com>
10943
10944         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
10945         Avoid abbreviation Creat
10946         (Finalize): List all sources in extended mail source if -gnatl
10947         switch is active.
10948         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
10949         (Finalize): Implement new -gnatl=xxx switch to output listing to file
10950         (Set_Specific_Warning_On): New procedure
10951         (Set_Specific_Warning_Off): New procedure
10952         Add implementation of new insertion \\
10953         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
10954         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
10955         types.
10956         (Error_Msg_Internal): Make sure that we set Last_Killed to
10957         True when a message from another package is suppressed.
10958         Implement insertion character ~ (insert string)
10959         (First_Node): Minor adjustments to get better placement.
10960
10961         * frontend.adb: 
10962         Implement new -gnatl=xxx switch to output listing to file
10963
10964         * gnat1drv.adb: 
10965         Implement new -gnatl=xxx switch to output listing to file
10966
10967         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
10968         (Commands_To_Stdout): New flag
10969         Implement new -gnatl=xxx switch to output listing to file
10970         New switch Dump_Source_Text
10971         (Warn_On_Deleted_Code): New warning flag for -gnatwt
10972         Define Error_Msg_Line_Length
10973         (Warn_On_Assumed_Low_Bound): New switch
10974
10975         * osint.ads, osint.adb
10976         (Normalize_Directory_Name): Fix bug.
10977         Implement new -gnatl=xxx switch to output listing to file
10978         (Concat): Removed, replaced by real concatenation
10979         Make use of concatenation now allowed in compiler
10980         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
10981         we find the 'lib' or 'bin' directory even when the tool has been
10982         invoked with a relative path.
10983         (Executable_Name): New function taking string parameters.
10984
10985         * osint-c.ads, osint-c.adb: 
10986         Implement new -gnatl=xxx switch to output listing to file
10987
10988         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
10989
10990         * switch-c.adb: 
10991         Implement new -gnatl=xxx switch to output listing to file
10992         Recognize new -gnatL switch
10993         (no longer keep in old warning about old style usage)
10994         Use concatenation to simplify code
10995         Recognize -gnatjnn switch
10996         (Scan_Front_End_Switches): Clean up handling of -gnatW
10997         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
10998
10999 2006-10-31  Robert Dewar  <dewar@adacore.com>
11000
11001         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
11002         (Set_Specific_Warning_Off): New procedure
11003         (Warning_Specifically_Suppressed): New function
11004         (Validate_Specific_Warnings): New procedure
11005         (Output_Msg_Text): Complete rewrite to support -gnatjnn
11006
11007         * err_vars.ads: Implement insertion character ~ (insert string)
11008
11009 2006-10-31  Bob Duff  <duff@adacore.com>
11010             Ed Schonberg  <schonberg@adacore.com>
11011
11012         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
11013         the parent part is a build-in-place function call, generate assignments.
11014         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
11015         are build-in-place function calls.
11016         (Replace_Self_Reference): New subsidiary of
11017         Make_OK_Assignment_Statement, to replace an access attribute that is a
11018         self-reference into an access to the appropriate component of the
11019         target object. Generalizes previous mechanism to handle self-references
11020         nested at any level.
11021         (Is_Self_Referential_Init): Remove, not needed.
11022         (Is_Self_Referential_Init): New predicate to simplify handling of self
11023         referential components in record aggregates.
11024         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
11025         check for presence of entity before checking for self-reference.
11026         (Has_Default_Init_Comps): Return True if a component association is a
11027         self-reference to the enclosing type, which can only come from a
11028         default initialization.
11029         (Make_OK_Assignment_Statement): If the expression is of the form
11030         Typ'Acc, where Acc is an access attribute, the expression comes from a
11031         default initialized self-referential component.
11032         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
11033         that has been derived from several abstract interfaces we must also
11034         initialize the tags of the secondary dispatch tables.
11035
11036 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11037             Thomas Quinot  <quinot@adacore.com>
11038             Javier Miranda  <miranda@adacore.com>
11039             Robert Dewar  <dewar@adacore.com>
11040
11041         * exp_attr.adb: 
11042         (Expand_Access_To_Protected_Op): If the context indicates that an access
11043         to a local operation may be transfered outside of the object, create an
11044         access to the wrapper operation that must be used in an external call.
11045         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
11046         target, pass the Valid attribute applied to a floating-point prefix on
11047         to the back end without expansion.
11048         (Storage_Size): Use the new run-time function Storage_Size to retrieve
11049         the allocated storage when it is specified by a per-object expression.
11050         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
11051         Nothing to do here, the attribute has been rewritten during semantic
11052         analysis.
11053         (Expand_Attribute_Reference): Handle expansion of the new Priority
11054         attribute
11055         (Find_Fat_Info): Handle case of universal real
11056         (Expand_Access_To_Protected_Op): Fix use of access to protected
11057         subprogram from inside the body of a protected entry.
11058         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
11059         'Access and 'Unrestricted_Access, to transform the attribute reference
11060         into a fat pointer.
11061         (Is_Constrained_Aliased_View): New predicate to help determine whether a
11062         subcomponent's enclosing variable is aliased with a constrained subtype.
11063         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
11064         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
11065         an aliased prefix must be known to be constrained in order to use True
11066         for the attribute value, and now it's possible for some aliased views
11067         to be unconstrained.
11068
11069 2006-10-31  Robert Dewar  <dewar@adacore.com>
11070
11071         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
11072         (Expand_Entity_Reference): Correct error of not handling subprogram
11073         formals in current_value processing.
11074
11075 2006-10-31  Javier Miranda  <miranda@adacore.com>
11076             Robert Dewar  <dewar@adacore.com>
11077             Ed Schonberg  <schonberg@adacore.com>
11078             Gary Dismukes  <dismukes@adacore.com>
11079
11080         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
11081         register in the final list objects containing class-wide interfaces;
11082         otherwise we incorrectly register the tag of the interface in the final
11083         list.
11084         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
11085         generate the wrapper if the parent primitive is abstract. This is
11086         required to report the correct error message.
11087         (Expand_N_Subtype_Indication): Do validity checks on range
11088         (Clean_Task_Names): If an initialization procedure includes a call to
11089         initialize a task (sub)component, indicate that the procedure will use
11090         the secondary stack.
11091         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
11092         compatibility for interfacing with CPP by default.
11093         (Expand_N_Object_Declaration): Only build an Adjust call when the
11094         object's type is a nonlimited controlled type.
11095         * exp_ch3.adb: Add with and use of Exp_Ch6.
11096         (Expand_N_Object_Declaration): Check for object initialization that is a
11097         call to build-in-place function and apply Make_Build_In_Place_Call_In_
11098         Object_Declaration to the call.
11099         (Freeze_Type): When the designated type of an RACW was not frozen at the
11100         point where the RACW was declared, validate the primitive operations
11101         with respect to E.2.2(14) when it finally is frozen.
11102         (Build_Initialization_Call,Expand_Record_Controller): Rename
11103         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
11104         return-by-reference has no meaning in Ada 2005.
11105         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
11106         to register tag of the immediate ancestor interfaces in the
11107         run-time structure.
11108         (Init_Secondary_Tags): Moved to the specification to allow the
11109         initialization of extension aggregates with abstract interfaces.
11110         (Build_Master_Renaming): Make public, for use by function declarations
11111         whose return type is an anonymous access type.
11112         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
11113         Insert_List_Before_And_Analyze after the generation of the specs
11114         associated with null procedures.
11115         (Expand_Tagged_Root): Update documentation in its specification.
11116         (Init_Secondary_Tags): Update documentation.
11117         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
11118         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
11119         then generate code to inherit the contents of the dispatch table
11120         directly from the ancestor.
11121         (Expand_Record_Controller): Insert controller component after tags of
11122         implemented interfaces.
11123         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
11124         create null procedure overridings when null procedures are inherited
11125         from interfaces.
11126         (Make_Null_Procedure_Specs): New procedure to generate null procedure
11127         declarations for overriding null primitives inherited from interfaces.
11128         (Is_Null_Interface_Procedure): New function in
11129         Make_Null_Procedure_Specs.
11130         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
11131         immediate ancestor of a tagged type is an abstract interface type we
11132         must generate the specification of the predefined primitives associated
11133         with controlled types (because the dispatch table of the ancestor is
11134         null and hence these entries cannot be inherited). This is required to
11135         elaborate well the dispatch table.
11136
11137 2006-10-31  Javier Miranda  <miranda@adacore.com>
11138             Ed Schonberg  <schonberg@adacore.com>
11139             Bob Duff  <duff@adacore.com>
11140             Gary Dismukes  <dismukes@adacore.com>
11141             Robert Dewar  <dewar@adacore.com>
11142
11143         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
11144         conversion.
11145         (Expand_N_In): Do validity checks on range
11146         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
11147         (Expand_N_Allocator): For "new T", if the object is constrained by
11148         discriminant defaults, allocate the right amount of memory, rather than
11149         the maximum for type T.
11150         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
11151         when the allocator is initialized by a build-in-place call, since the
11152         allocator is already rewritten as a reference to the function result,
11153         and this prevents an unwanted duplication of the function call.
11154         Add with and use of Exp_Ch6.
11155         (Expand_Allocator_Expresssion): Check for an allocator whose expression
11156         is a call to build-in-place function and apply
11157         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
11158         untagged designated types).
11159         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
11160         optimization if source or target is biased.
11161         (Expand_N_Allocator): Add comments for case of an allocator within a
11162         function that returns an anonymous access type designating tasks.
11163         (Expand_N_Allocator): apply discriminant checks for access
11164         discriminants of anonymous access types (AI-402, AI-416)
11165
11166 2006-10-31  Bob Duff  <duff@adacore.com>
11167             Robert Dewar  <dewar@adacore.com>
11168             Gary Dismukes  <dismukes@adacore.com>
11169             Ed Schonberg  <schonberg@adacore.com>
11170
11171         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
11172
11173         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
11174         (Expand_N_Assignment_Statement): Call
11175         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
11176         build-in-place function call. Currently, this can happen only for
11177         assignments that come from aggregates.
11178         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
11179         in order to alleviate the upward compatibility introduced by AI-318.
11180         (Expand_N_Extended_Return_Statement): Add support for handling the
11181         return object as a build-in-place result.
11182         (Expand_Non_Function_Return): Implement simple return statements nested
11183         within an extended return.
11184         (Enable_New_Return_Processing): Turn on the new processing of return
11185         statements.
11186         (Expand_Non_Function_Return): For a return within an extended return,
11187         don't raise Program_Error, because Sem_Ch6 now gives a warning.
11188         (Expand_N_Extended_Return_Statement): Implement AI-318
11189         (Expand_Simple_Function_Return): Ditto.
11190         (Expand_N_If_Statement): Handle new -gnatwt warning
11191         (Expand_N_Case_Statement): Handle new -gnatwt warning
11192         (Expand_N_Assignment): Handle assignment to the Priority attribute of
11193         a protected object.
11194         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
11195         validity checking of assignments to elementary record components.
11196         (Expand_N_Return_Statement): return Class Wide types on the secondary
11197         stack independantly of their controlled status since with HIE runtimes,
11198         class wide types are not potentially controlled anymore.
11199
11200         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
11201         node kind.
11202
11203         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
11204         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
11205         it expects a block, procedure, or task. The return statement will get
11206         turned into a block, and Expand_Cleanup_Actions will happen then.
11207
11208 2006-10-31  Robert Dewar  <dewar@adacore.com>
11209             Ed Schonberg  <schonberg@adacore.com>
11210             Bob Duff  <duff@adacore.com>
11211             Gary Dismukes  <dismukes@adacore.com>
11212
11213         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
11214         capability.
11215         (Expand_Inlined_Call): Tagged types are by-reference types, and
11216         therefore should be replaced by a renaming declaration in the expanded
11217         body, as is done for limited types.
11218         (Expand_Call): If this is a call to a function with dispatching access
11219         result, propagate tag from context.
11220         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
11221         CPP by default.
11222         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
11223         build-in-place when the right-hand side of an assignment is a
11224         build-in-place function call.
11225         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
11226         of the explicit dereference of the allocator to the result subtype of
11227         the build-in-place function. This is needed to satisfy type checking
11228         in cases where the caller's return object is created by an allocator for
11229         a class-wide access type and the type named in the allocator is a
11230         specific type.
11231         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
11232         conversion of the reference to the declared object to the result subtype
11233         of the build-in-place function. This is needed to satisfy type checking
11234         in cases where the declared object has a class-wide type. Also, in the
11235         class-wide case, change the type of the object entity to the specific
11236         result subtype of the function, to avoid passing a class-wide object
11237         without explicit initialization to the back end.
11238         (Register_Interface_DT_Entry): Moved outside the body of
11239         Freeze_Subprogram because this routine is now public; it is called from
11240         Check_Dispatching_Overriding to handle late overriding of abstract
11241         interface primitives.
11242         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
11243         adding an implicit access actual on a call to a build-in-place function.
11244         (Expand_Actuals): Test for an actual parameter that is a call to a
11245         build-in-place function and apply
11246         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
11247         (Is_Build_In_Place_Function): New function to determine whether an
11248         entity is a function whose calls should be handled as build-in-place.
11249         (Is_Build_In_Place_Function_Call): New function to determine whether an
11250         expression is a function call that should handled as build-in-place.
11251         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
11252         calls to build-in-place functions as the initialization of an allocator.
11253         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
11254         handling calls to build-in-place functions in contexts that do not
11255         involve init of a separate object (for example, actuals of subprogram
11256         calls).
11257         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
11258         handling calls to build-in-place functions as the initialization of an
11259         object declaration.
11260         (Detect_Infinite_Recursion): Add explicit parameter Process to
11261         instantiation of Traverse_Body to avoid unreferenced warning.
11262         (Check_Overriding_Inherited_Interfaces): Removed.
11263         (Register_Interface_DT_Entry): Code cleanup.
11264         (Register_Predefined_DT_Entry): Code cleanup.
11265         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
11266         inlined statements if within a transient scope.
11267         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
11268         formal parameters with occurrences of actuals in inlined body, establish
11269         visibility on the proper view of the actual's subtype for the body's
11270         context.
11271         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
11272         compatibility mode and we have an imported CPP subprogram because
11273         for now we assume that imported CPP primitives correspond with
11274         objects whose constructor is in the CPP side (and therefore we
11275         don't need to generate code to register them in the dispatch table).
11276         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
11277         aligned selected component.
11278         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
11279         the actual of an in-mode parameter is a type conversion.
11280         (Expand_Actuals): If the call does not come from source and the actual
11281         is potentially misaligned, let gigi handle it rather than rejecting the
11282         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
11283         Class Wide types as returning by reference independantly of their
11284         controlled status since with HIE runtimes class wide types are not
11285         potentially controlled anymore.
11286
11287 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11288
11289         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
11290         references that are private components of the protected object.
11291         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
11292         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
11293         instantiation to deal with warnings.
11294         (Initialize_Protection): If expression for priority is non-static, use
11295         System_Priority as its expected type, in case the expression has not
11296         been analyzed yet.
11297
11298 2006-10-31  Robert Dewar  <dewar@adacore.com>
11299
11300         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
11301         initialization of Homonym_Len.
11302         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
11303         names from fully qualified name. Fixes problem of duplicate
11304         external names differing only in the presence of such a block name.
11305
11306 2006-10-31  Thomas Quinot  <quinot@adacore.com>
11307             Pablo Oliveira  <oliveira@adacore.com>
11308
11309         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
11310         subprogram Ids, even if they are not yet assigned.
11311         (Build_Subprogram_Id): It is now this function that will take care of
11312         calling Assign_Subprogram_Ids if necessary.
11313         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
11314         should be done only once they are assigned.
11315         (Build_From_Any_Function, case of tagged types): Add missing call to
11316         Allocate_Buffer.
11317         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
11318         type for an RACW type.
11319         (Add_RACW_Features): When processing an RACW declaration for which the
11320         designated type is already frozen, enforce E.2.2(14) rules immediately.
11321         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
11322         special reordering of controlling formals.
11323
11324         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
11325         associated stub type for an RACW type.
11326
11327 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11328
11329         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
11330         fixed-point operations in an integer context, i.e. as operands of a
11331         conversion to an integer type, indicate that result must be rounded.
11332
11333 2006-10-31  Robert Dewar  <dewar@adacore.com>
11334
11335         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
11336         cases, pass the encoding method, since it is now required by the run
11337         time.
11338
11339         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
11340         assumption that Str'First = 1.
11341         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
11342         it on to the Value_Wide_Wide_Character call.
11343         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
11344         properly handles a string of the form quote-encoded_wide_char-quote.
11345
11346         * s-wchcnv.adb: Minor reformatting
11347
11348 2006-10-31  Javier Miranda  <miranda@adacore.com>
11349
11350         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
11351         run-time membership test to ensure that the constructed object
11352         implements the target abstract interface.
11353
11354 2006-10-31  Robert Dewar  <dewar@adacore.com>
11355
11356         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
11357         Machine_Attribute pragma internally to implement the user pragma.
11358         Add processing for pragma Interface so that it is now completely
11359         equivalent to pragma Import.
11360
11361         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
11362         so that it can be applied to all entities, including record components
11363         and enumeration literals.
11364         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
11365         priority ranges are correct, verify compatibility against task
11366         dispatching and locking policies, and if everything is correct an entry
11367         is added to the table containing priority specific dispatching entries
11368         for this compilation unit.
11369         (Delay_Config_Pragma_Analyze): Delay processing
11370         Priority_Specific_Dispatching pragmas because when processing the
11371         pragma we need to access run-time data, such as the range of
11372         System.Any_Priority.
11373         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
11374         Allow pragma Unreferenced as a context item
11375         Add pragma Preelaborable_Initialization
11376         (Analyze_Pragma, case Interface): Interface is extended so that it is
11377         now syntactically and semantically equivalent to Import.
11378         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
11379         insertion characters.
11380         Add handling for Pragma_Wide_Character_Encoding
11381         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
11382         never supercedes a real restriction, and that a real restriction
11383         always supercedes a warning.
11384         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
11385         appropriate form.
11386
11387 2006-10-31  Bob Duff  <duff@adacore.com>
11388             Ed Schonberg  <schonberg@adacore.com>
11389             Robert Dewar  <dewar@adacore.com>
11390
11391         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
11392         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
11393         Is_Inherently_Limited_Type, because return-by-reference has no meaning
11394         in Ada 2005.
11395         (Find_Node_To_Be_Wrapped): Use new method of determining the result
11396         type of the function containing a return statement, because the
11397         Return_Type field was removed. We now use the Return_Applies_To field.
11398
11399         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
11400         (Build_Task_Image_Decl): If procedure is not called from an
11401         initialization procedure, indicate that function that builds task name
11402         uses the sec. stack. Otherwise the enclosing initialization procedure
11403         will carry the indication.
11404         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
11405         N_Object_Declaration instead.
11406         (Kill_Dead_Code): New interface to implement -gnatwt warning for
11407         conditional dead code killed, and change implementation accordingly.
11408         (Insert_Actions): Add N_Return_Object_Declaration case.
11409         Correct comment to mention N_Extension_Aggregate node.
11410         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
11411         attempts to save information for global variables which cannot be
11412         safely tracked.
11413         (Get_Current_Value_Condition): Handle conditions the other way round
11414         (constant on left). Also handle right operand of AND and AND THEN
11415         (Set_Current_Value_Condition): Corresponding changes
11416         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
11417         (Get_Current_Value_Condition): Handle simple boolean operands
11418         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
11419         (Get_Current_Value_Condition): If the variable reference is within an
11420         if-statement, does not appear in the list of then_statments, and does
11421         not come from source, treat it as being at unknown location.
11422         (Get_Current_Value_Condition): Enhance to allow while statements to be
11423         processed as well as if statements.
11424         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
11425         come from source.
11426         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
11427         of loop. This is safe now that we fixed Kill_Current_Values.
11428         (OK_To_Do_Constant_Replacement): Check whether current scope is
11429         Standard, before examining outer scopes.
11430
11431 2006-10-31  Vincent Celier  <celier@adacore.com>
11432
11433         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
11434         When True, apply VMS treatment to children of packages A, G, I and S.
11435         For F320-016
11436
11437         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
11438
11439 2006-10-31  Robert Dewar  <dewar@adacore.com>
11440             Ed Schonberg  <schonberg@adacore.com>
11441
11442         * freeze.adb: Add handling of Last_Assignment field
11443         (Warn_Overlay): Supply missing continuation marks in error msgs
11444         (Freeze_Entity): Add check for Preelaborable_Initialization
11445
11446         * g-comlin.adb: Add Warnings (Off) to prevent new warning
11447
11448         * g-expect.adb: Add Warnings (Off) to prevent new warning
11449
11450         * lib-xref.adb: Add handling of Last_Assignment field
11451         (Generate_Reference): Centralize handling of pragma Obsolescent here
11452         (Generate_Reference): Accept an implicit reference generated for a
11453         default in an instance.
11454         (Generate_Reference): Accept a reference for a node that is not in the
11455         main unit, if it is the generic body corresponding to an subprogram
11456         instantiation.
11457
11458         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
11459
11460         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
11461         -gnatwq/Q.
11462         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
11463         exception handler.
11464         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
11465         use clauses, to avoid messages on packages used to qualify, and also
11466         to avoid messages from obsolescent units.
11467         (Warn_On_Useless_Assignments): Don't generate messages for imported
11468         and exported variables.
11469         (Warn_On_Useless_Assignments): New procedure
11470         (Output_Obsolescent_Entity_Warnings): New procedure
11471         (Check_Code_Statement): New procedure
11472
11473         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
11474         Change name Is_Ada_2005 to Is_Ada_2005_Only
11475         (Last_Assignment): New field for useless assignment warning
11476
11477 2006-10-31  Olivier Hainque  <hainque@adacore.com>
11478
11479         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
11480         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
11481
11482 2006-10-31  Bob Duff  <duff@adacore.com>
11483             Robert Dewar  <dewar@adacore.com>
11484             Ed Schonberg  <schonberg@adacore.com>
11485
11486         * g-awk.adb (Default_Session, Current_Session): Compile this file in
11487         Ada 95 mode, because it violates the new rules for AI-318.
11488
11489         * g-awk.ads: Use overloaded subprograms in every case where we used to
11490         have a default of Current_Session. This makes the code closer to be
11491         correct for both Ada 95 and 2005.
11492
11493         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
11494         code, relying on the fact that the compiler generates a warning
11495         instead of an error in -gnatg mode.
11496
11497         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
11498         E_Return_Statement entity kind.
11499         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
11500
11501         * par.adb (P_Interface_Type_Definition): Addition of one formal to
11502         report an error if the reserved word abstract has been previously found.
11503         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
11504
11505         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
11506         parenthesized range attribute usage
11507         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
11508
11509         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
11510         in the syntax for extended_return_statement. This is not in the latest
11511         RM, but the ARG is expected to issue an AI allowing this.
11512         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
11513         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
11514         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
11515         P_Return_Statement): Parse the new syntax for extended_return_statement.
11516
11517         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
11518         Output_End_Missing): Add error-recovery code for the new
11519         extended_return_statement syntax; that is, the new E_Return entry on
11520         the scope stack.
11521
11522         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
11523         limited to nonlimited, because otherwise we violate the new Ada 2005
11524         rules about returning limited types in function Create_AST_Handler in
11525         s-asthan.adb.
11526
11527         * sem.adb (Analyze): Add cases for new node kinds
11528         N_Extended_Return_Statement and N_Return_Object_Declaration.
11529
11530         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
11531         type is in the same category as type of context before applying check,
11532         to prevent anomalies in instantiations.
11533         (Resolve_Aggregate): Remove test for limited components in aggregates.
11534         It's unnecessary in Ada 95, because if it has limited components, then
11535         it must be limited. It's wrong in Ada 2005, because limited aggregates
11536         are now allowed.
11537         (Resolve_Record_Aggregate): Move check for limited types later, because
11538         OK_For_Limited_Init requires its argument to have been resolved.
11539         (Get_Value): When copying the component default expression for a
11540         defaulted association in an aggregate, use the sloc of the aggregate
11541         and not that of the original expression, to prevent spurious
11542         elaboration errors, when the expression includes function calls.
11543         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
11544         were missing. We also didn't handle qualified expressions. Now also
11545         allow function calls. Use new common routine OK_For_Limited_Init.
11546         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
11547         with space can upper case letter).
11548
11549         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
11550         Has_Static_Discriminants flag
11551         (Record_Type_Declaration): Diagnose an attempt to declare an interface
11552         type with discriminants.
11553         (Process_Range_Expr_In_Decl): Do validity checks on range
11554         (Build_Discriminant_Constraints): Use updated form of
11555         Denotes_Discriminant.
11556         (Process_Subtype): If the subtype is a private subtype whose full view
11557         is a concurrent subtype, introduce an itype reference to prevent scope
11558         anomalies in gigi.
11559         (Build_Derived_Record_Type, Collect_Interface_Primitives,
11560         Record_Type_Declaration):  The functionality of the subprograms
11561         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
11562         is now performed by a single routine.
11563         (Build_Derived_Record_Type): If the type definition includes an explicit
11564         indication of limitedness, then the type must be marked as limited here
11565         to ensure that any access discriminants will not be treated as having
11566         a local anonymous access type.
11567         (Check_Abstract_Overriding): Issue a detailed error message when an
11568         abstract subprogram was not overridden due to incorrect mode of its
11569         first parameter.
11570         (Analyze_Private_Extension_Declaration): Add support for the analysis of
11571         synchronized private extension declarations. Verify that the ancestor is
11572         a limited or synchronized interface or in the generic case, the ancestor
11573         is a tagged limited type or synchronized interface and all progenitors
11574         are either limited or synchronized interfaces.
11575         Derived_Type_Declaration): Check for presence of private extension when
11576         dealing with synchronized formal derived types.
11577         Process_Full_View): Enchance the check done on the usage of "limited" by
11578         testing whether the private view is synchronized.
11579         Verify that a synchronized private view is completed by a protected or
11580         task type.
11581         (OK_For_Limited_Init_In_05): New function.
11582         (Analyze_Object_Declaration): Move check for limited types later,
11583         because OK_For_Limited_Init requires its argument to have been resolved.
11584         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
11585         in order to alleviate the upward compatibility introduced by AI-318.
11586         (Constrain_Corresponding_Record): If the constraint is for a component
11587         subtype, mark the itype as frozen, to avoid out-of-scope references to
11588         discriminants in the back-end.
11589         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
11590         this subprogram against wrong sources.
11591         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
11592         discriminant of limited type completed with a protected type, when the
11593         discriminant is used to constrain a private component of the type, and
11594         expansion is disabled.
11595         (Find_Type_Of_Object): Do not treat a return subtype that is an
11596         anonymous subtype as a local_anonymous_type, because its accessibility
11597         level is the return type of the enclosing function.
11598         (Check_Initialization): In -gnatg mode, turn the error "cannot
11599         initialize entities of limited type" into a warning.
11600         (OK_For_Limited_Init): Return true for generated nodes, since it
11601         sometimes violates the legality rules.
11602         (Make_Incomplete_Declaration): If the type for which an incomplete
11603         declaration is created happens to be the currently visible entity,
11604         preserve the homonym chain when removing it from visibility.
11605         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
11606         inherited subprograms.
11607         (Access_Definition): If this is an access to function that is the return
11608         type of an access_to_function definition, context is a type declaration
11609         and the scope of the anonymous type is the current one.
11610         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
11611         incomplete subtype to the set of private dependents of the original
11612         incomplete type.
11613         (Constrain_Discriminated_Type): Emit an error message whenever an
11614         incomplete subtype is being constrained.
11615         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
11616         corresponding subtype of the full view of the original incomplete type.
11617         (Check_Incomplete): Properly detect invalid usage of incomplete types
11618         and subtypes.
11619
11620 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
11621
11622         * g-catiio.ads, g-catiio.adb (Value): New function.
11623         Given an input String, try and parse a valid Time value.
11624
11625 2006-10-31  Vincent Celier  <celier@adacore.com>
11626
11627         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
11628         Integer_Address arithmetic, as in Set_Valid.
11629
11630 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
11631             Robert Dewar  <dewar@adacore.com>
11632
11633         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
11634         handling executable extension manually and duplicating code.
11635
11636         * make.adb: Implement new -S switch
11637         (Gnatmake): Use new function Osint.Executable_Name instead
11638         of handling executable extension manually.
11639
11640         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
11641         is specified, the executable name ends with this suffix.
11642         Take advantage of Osint.Executable_Name instead of duplicating code.
11643
11644         * switch-m.adb: Recognize new gnatmake -S switch
11645
11646         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
11647         variable.
11648         (Get_Target_Parameters): Set Executable_Extension_On_Target if
11649         available.
11650
11651         * makeusg.adb: Add line for gnatmake -S switch
11652
11653 2006-10-31  Vincent Celier  <celier@adacore.com>
11654
11655         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
11656         call it with -static-libgcc, as there are some platforms, such as
11657         Darwin, where one of these two switches is compulsory to link.
11658
11659 2006-10-31  Vincent Celier  <celier@adacore.com>
11660
11661         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
11662         instead of ADA_PROJECT_PATH, for the project path.
11663         (Gnatls): When displaying the project path directories, use host dir
11664         specs.
11665
11666         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
11667         names in the project path, as absolute paths may correspond to
11668         multi-valued VMS logical names.
11669
11670 2006-10-31  Vincent Celier  <celier@adacore.com>
11671
11672         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
11673         absolute path name.
11674         (Locate_Regular_File): Ditto
11675         (Change_Dir): Remove, no longer used
11676         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
11677         on Windows. Get it calling Get_Current_Dir.
11678         (OpenVMS): Remove imported boolean, no longer needed.
11679         (Normalize_Pathname)[VMS]: Do not resolve directory names.
11680         (Pid_To_Integer): New function to convert a Process_Id to  Integer
11681
11682 2006-10-31  Thomas Quinot  <quinot@adacore.com>
11683
11684         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
11685         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
11686         to No_Socket.
11687         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
11688         W_Sig_Socket.
11689
11690 2006-10-31  Robert Dewar  <dewar@adacore.com>
11691
11692         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
11693         initial letter o as a zero.
11694
11695 2006-10-31  Robert Dewar  <dewar@adacore.com>
11696
11697         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
11698
11699 2006-10-31  Robert Dewar  <dewar@adacore.com>
11700
11701         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
11702         variant records
11703         (Layout_Variant_Record): Retrieve the discriminants from the entity
11704         rather than from the type definition, because in the case of a full
11705         type for a private type we need to take the discriminants from the
11706         partial view.
11707         (Layout_Component_List): When applying the Max operator to variants with
11708         a nonstatic size, check whether either operand is static and scale that
11709         operand from bits to storage units before applying Max.
11710         (Layout_Type): In VMS, if a C-convention access type has no explicit
11711         size clause (and does not inherit one in the case of a derived type),
11712         then the size is reset to 32 from 64.
11713
11714 2006-10-31  Vincent Celier  <celier@adacore.com>
11715
11716         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
11717         its file has already been loaded, according to the unit being loaded,
11718         not to the current value of Multiple_Unit_Index.
11719
11720 2006-10-31  Thomas Quinot  <quinot@adacore.com>
11721             Eric Botcazou  <ebotcazou@adacore.com>
11722             Arnaud Charlet  <charlet@adacore.com>
11723
11724         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
11725         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
11726         possible.
11727         (a-except.o): Pass it to the compiler.
11728         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
11729         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
11730         a-calend-mingw.adb version.
11731
11732         * Makefile.rtl: Added s-dsaser.
11733         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
11734         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
11735         Ada.Dispatching.Round_Robin.
11736         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
11737
11738         * Make-lang.in: Remove all references to gt-ada-decl.h.
11739         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
11740         sources.
11741         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
11742         Update dependencies.
11743
11744         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
11745
11746 2006-10-31  Vincent Celier  <celier@adacore.com>
11747
11748         * mlib-utl.adb (Initialized): Remove, no longer used
11749         (Initialize): Remove, no longer used
11750         (Ar): If Ar_Exec is null, get the location of the archive builder and,
11751         if there is one, the archive indexer. Fail if the archive builder cannot
11752         be found.
11753         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
11754         be found.
11755
11756 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11757
11758         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
11759         Process_Body_Clauses): If the context of a body includes a use clause
11760         for P.Q then a with_clause for P in the same body is not redundant,
11761         even if the spec also has a with_clause on P.
11762         Add missing continuation mark to error msg
11763         (Build_Limited_Views): A limited view of a type is tagged if its
11764         declaration includes a record extension.
11765         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
11766         node, even if the subunit has errors. This avoids malfunction by
11767         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
11768         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
11769         generation of obsolescent messages for with statements (cannot do
11770         this too early, or we cannot implement avoiding the messages in the
11771         case of obsolescent units withing obsolescent units).
11772         (Install_Siblings): If the with_clause is on a remote descendant of
11773         an ancestor of the current compilation unit, find whether there is
11774         a sibling child unit that is immediately visible.
11775         (Remove_Private_With_Clauses): New procedure, invoked after completing
11776         the analysis of the private part of a nested package, to remove from
11777         visibility the private with_clauses of the enclosing package
11778         declaration.
11779         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
11780         now centralized in Generate_Reference.
11781         (Install_Limited_Context_Clauses): Remove superfluous error
11782         message associated with unlimited view visible through use
11783         and renamings. In addition, at the point in which the error
11784         is reported, we add the backslash to the text of the error
11785         to ensure that it is reported as a single error message.
11786         Use new // insertion for some continuation messages
11787         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
11788         to create implicit with_clause for parent unit mentioned in original
11789         limited_with_clause.
11790         (Install_Limited_With_Unit): Set entity of parent identifiers if the
11791         unit is a child unit. For ASIS queries.
11792         (Analyze_Subunit): If the subunit appears within a child unit, make all
11793         ancestor child units directly visible again.
11794
11795 2006-10-31  Robert Dewar  <dewar@adacore.com>
11796
11797         * par-ch10.adb (P_Context_Clause): Minor error message fix
11798
11799 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
11800             Javier Miranda  <miranda@adacore.com>
11801
11802         * par-ch12.adb: Grammar update and cleanup.
11803         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
11804         support for synchronized derived type definitions.
11805         Add the new actual Abstract_Present to every call to
11806         P_Interface_Type_Definition.
11807         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
11808         a formal object declaration with an access definition or a subtype mark
11809         with a null exclusion.
11810         (P_Generic_Association): Handle association with box, and others_choice
11811         with box, to support Ada 2005 partially parametrized formal packages.
11812
11813 2006-10-31  Robert Dewar  <dewar@adacore.com>
11814             Javier Miranda  <miranda@adacore.com>
11815
11816         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
11817         (P_Type_Declaration): Remove barrier against the reserved word "limited"
11818         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
11819         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
11820         private extensions.
11821         (P_Type_Declaration): Add the new actual Abstract_Present to every call
11822         to P_Interface_Type_Definition.
11823         (P_Interface_Type_Definition): Addition of one formal to report an error
11824         if the reserved word abstract has been previously found.
11825         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
11826         object renaming declaration with an access definition or subtype mark
11827         with a possible null exclusion.
11828
11829         * par-ch9.adb: Minor error msg fix
11830
11831         * par-load.adb: Add missing continuation mark to error msg
11832
11833         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
11834
11835 2006-10-31  Vincent Celier  <celier@adacore.com>
11836
11837         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
11838         unknown attribute in unknown package or in package that does not need
11839         to be checked.
11840         (Parse_Package_Declaration): Do not issue warning for unknown package in
11841         quiet output.
11842
11843 2006-10-31  Vincent Celier  <celier@adacore.com>
11844
11845         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
11846         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
11847         Packages_To_Check.
11848
11849 2006-10-31  Vincent Celier  <celier@adacore.com>
11850
11851         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
11852         on VMS, change "__" to '.' before checking the name.
11853         (Record_Ada_Source): Always add the source file name in the list of
11854         of sources, even if it is not the first time, as it is for another
11855         source index.
11856         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
11857         dot, instead of replacing only the first '_'.
11858
11859         * prj-part.adb (Parse): Convert project file path to canonical form
11860
11861         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
11862         extended, the project id of the project extending it is recorded in its
11863         data, even when it has already been processed as an imported project.
11864
11865 2006-10-31  Robert Dewar  <dewar@adacore.com>
11866
11867         * repinfo.adb (List_Entities): Don't list entities from renaming
11868         declarations.
11869
11870 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
11871             Robert Dewar  <dewar@adacore.com>
11872
11873         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
11874         only a restriction warning is active for the given restriction. This is
11875         desirable because we do not want to modify code in the case where only
11876         a warning is set.
11877         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
11878         causes overriding of real restrictions.
11879         Take advantage of new No_Restrictions constant.
11880
11881         * raise.h: (__gnat_set_globals): Change profile.
11882
11883 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
11884
11885         * rtsfind.adb: Remove s-polint from comment as it exists no more.
11886
11887         * rtsfind.ads: 
11888         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
11889         Move all the entities in obsolete package System.PolyORB_Interface to
11890         System.Partition_Interface.
11891         (RE_Storage_Size): New function in System.Tasking.
11892         (RE_Get_Ceiling): New entity.
11893         (RE_Set_Ceiling): New entity.
11894         (RO_PE_Get_Ceiling): New entity.
11895         (RO_RE_Set_Ceiling): New entity.
11896         (Inherit_CPP_DT): New entity
11897
11898 2006-10-31  Robert Dewar  <dewar@adacore.com>
11899
11900         * scng.adb (Scan, case of numeric literal): Better msg for identifier
11901         starting with a digit.
11902
11903 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11904             Thomas Quinot  <quinot@adacore.com>
11905             Javier Miranda  <miranda@adacore.com>
11906             Gary Dismukes  <dismukes@adacore.com>
11907
11908         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
11909         properly an attempt to apply Unchecked_Access to a protected operation.
11910         (OK_Self_Reference): New subprogram to check the legality of an access
11911         attribute whose prefix is the type of an enclosing aggregate.
11912         Generalizes previous mechanism to handle attribute references nested
11913         arbitrarily deep within the aggregate.
11914         (Analyze_Access_Attribute): An access attribute whose prefix is a type
11915         can appear in an aggregate if this is a default-initialized aggregate
11916         for a self-referential type.
11917         (Resolve_Attribute, case Access): Ditto.
11918         Add support for new implementation defined attribute Stub_Type.
11919         (Eval_Attribute, case Attribute_Stub_Type): New case.
11920         (Analyze_Attribute, case Attribute_Stub_Type): New case.
11921         (Stream_Attribute_Available): Implement using new subprogram from
11922         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
11923         Has_Specified_Stream_Attribute flag.
11924         Disallow Storage_Size and Storage_Pool for access to subprogram
11925         (Resolve_Attribute, case 'Access et al): Take into account anonymous
11926         access types of return subtypes in extended return statements. Remove
11927         accessibility checks on anonymous access types when Unchecked_Access is
11928         used.
11929         (Analyze_Attribute): Add support for the use of 'Class to convert
11930         a class-wide interface to a tagged type.
11931         Add support for the attribute Priority.
11932         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
11933         whether the designated type is discriminated with a constrained partial
11934         view and require static matching in that case.
11935         Add local variable Des_Btyp. The Designated_Type
11936         of an access to incomplete subtype is either its non-limited view if
11937         coming from a limited with or its etype if regular incomplete subtype.
11938
11939         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
11940         Fix predicate to identify and allow cases of (expander-generated)
11941         references to tag of designated object of a RACW.
11942         (Validate_Static_Object_Name): In Ada 2005, a formal object is
11943         non-static, and therefore cannot appear as a primary in a preelaborable
11944         package.
11945         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
11946         Has_Read_Write_Attributes.
11947         (Has_Read_Write_Attributes): Reimplement in termes of
11948         Has_Stream_Attribute_Definition.
11949         (Missing_Read_Write_Attributes): When checking component types in a
11950         record, unconditionally call Missing_Read_Write_Attributes recursively
11951         (remove guard checking for Is_Record_Type / Is_Access_Type).
11952
11953 2006-10-31  Robert Dewar  <dewar@adacore.com>
11954
11955         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
11956         useless assignments here and conditionalize it on absence of exception
11957         handlers.
11958         (Analyze_Exception_Handlers): Small code reorganization of error
11959         detection code, for new handling of formal packages.
11960
11961 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11962             Hristian Kirtchev  <kirtchev@adacore.com>
11963
11964         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
11965         that has been constant-folded, preserve information of original tree,
11966         for ASIS uses.
11967         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
11968         generated private extension declaration if the formal derived type is
11969         synchronized. Carry synchronized present over to the generated private
11970         extension.
11971         (Validate_Derived_Type_Instance): Ensure that the actual of a
11972         synchronized formal derived type is a synchronized tagged type.
11973         (Instantiate_Formal_Package): When creating the instantiation used to
11974         validate the actual package of a formal declared without a box, check
11975         whether the formal itself depends on a prior actual.
11976         (Instantiate_Formal_Subprogram): Create new entities for the defining
11977         identifiers of the formals in the renaming declaration, for ASIS use.
11978         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
11979         a renaming declaration or a subtype declaration for an actual in an
11980         instance, capture location information of declaration in generic, for
11981         ASIS use.
11982         (Instantiate_Formal_Package): Add comments on needed additional tests.
11983         AI-317 (partial parametrization) is fully implemented.
11984         (Validate_Private_Type_Instance): Add check for actual which
11985         must have preelaborable initialization
11986         Use new // insertion for some continuation messages
11987         (Analyze_Formal_Object_Declaration): Change usage of Expression to
11988         Default_Expression. Add type retrieval when the declaration has an
11989         access definition. Update premature usage of incomplete type check.
11990         (Check_Access_Definition): New subsidiary routine. Check whether the
11991         current compilation version is Ada 05 and the supplied node has an
11992         access definition.
11993         (Instantiate object): Alphabetize local variables. Handle the creation
11994         of new renaming declarations with respect to the kind of definition
11995         used - either an access definition or a subtype mark. Guard against
11996         unnecessary error message in the context of anonymous access types after
11997         they have been resolved. Add check for required null exclusion in a
11998         formal object declaration.
11999         (Switch_View): A private subtype of a non-private type needs to be
12000         switched (the base type can have been switched without its private
12001         dependents because of the last branch of Check_Private_View.
12002         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
12003         value from BT.
12004         (Instantiate_Type): Emit an error message whenever a class-wide type of
12005         a tagged incomplete type is used as a generic actual.
12006         (Find_Actual_Type): Extend routine to handle a component type in a child
12007         unit that is imported from a formal package in a parent.
12008         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
12009         agree on constrainedness, rather than checking against ultimate ancestor
12010         (Instantiate_Subprogram_Body): Create a cross-reference link to the
12011         generic body, for navigation purposes.
12012
12013 2006-10-31  Robert Dewar  <dewar@adacore.com>
12014             Thomas Quinot  <quinot@adacore.com>
12015
12016         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
12017         type.
12018         (New_Stream_Subprogram): When processing an attribute definition clause
12019         for a stream-oriented subprogram, record an entity node occurring at
12020         the point of clause to use for checking the visibility of the clause,
12021         as defined by 8.3(23) as amended by AI-195.
12022         (New_Stream_Subprogram): New procedure, factoring behaviour from both
12023          New_Stream_Function and New_Stream_Procedure.
12024         (New_Stream_Function, New_Stream_Procedure): Removed.
12025         (Analyze_Attribute_Definition_Clause, case Address): Check new
12026         Alignment_Check check
12027
12028 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
12029             Javier Miranda  <miranda@adacore.com>
12030             Robert Dewar  <dewar@adacore.com>
12031
12032         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
12033         generate the same errors compiling under -gnatc.
12034         (Try_Object_Operation): If no candidate interpretation succeeds, but
12035         there is at least one primitive operation with the right name, report
12036         error in call rather than on a malformed selected component.
12037         (Analyze_Selected_Component): If the prefix is an incomplete type from
12038         a limited view, and the full view is available, use the full view to
12039         determine whether this is a prefixed call to a primitive operation.
12040         (Operator_Check): Verify that a candidate interpretation is a binary
12041         operation before checking the type of its second formal.
12042         (Analyze_Call): Add additional warnings for function call contexts not
12043         yet supported.
12044         (Analyze_Allocator): Move the check for "initialization not allowed for
12045         limited types" after analyzing the expression. This is necessary,
12046         because OK_For_Limited_Init looks at the structure of the expression.
12047         Before analysis, we don't necessarily know what sort of expression it
12048         is. For example, we don't know whether F(X) is a function call or an
12049         indexed component; the former is legal in Ada 2005; the latter is not.
12050         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
12051         were missing. We also didn't handle qualified expressions. Now also
12052         allow function calls. Use new common routine OK_For_Limited_Init.
12053         (Analyze_Type_Conversion): Do not perform some legality checks in an
12054         instance, because the error message will be redundant or spurious.
12055         (Analyze_Overloaded_Selected_Component): Do not do style check when
12056         setting an entity, since we do not know it is the right entity yet.
12057         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
12058         (Analyze_Overloaded_Selected_Component): Same change
12059         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
12060         since regular incomplete subtypes are transformed into corresponding
12061         subtypes of their full views.
12062         (Complete_Object_Operation): Treat name of transformed subprogram call
12063         as coming from source, for browsing purposes.
12064         (Try_Primitive_Operation): If formal is an access parameter, compare
12065         with base type of object to determine whether it is a primitive
12066         operation.
12067         (Operator_Check): If no interpretation of the operator matches, check
12068         whether a use clause on any candidate might make the operation legal.
12069         (Try_Class_Wide_Operation): Check whether the first parameter is an
12070         access type whose designated type is class-wide.
12071
12072 2006-10-31  Robert Dewar  <dewar@adacore.com>
12073             Ed Schonberg  <schonberg@adacore.com>
12074             Gary Dismukes  <dismukes@adacore.com>
12075
12076         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
12077         warn on infinite loops.
12078         Add \\ to some continuation messages
12079         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
12080         (Process_Bounds): If the bounds are integer literals that result from
12081         constant-folding, and they carry a user-defined type, preserve that type
12082         rather than treating this as an integer range.
12083         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
12084         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
12085         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
12086         left hand side of assignment.
12087         (Analyze_Assignment): Add suport to manage assigments to the attribute
12088         priority of a protected object.
12089         (Check_Possible_Current_Value_Condition): Allow fully qualified names
12090         not just identifiers.
12091         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
12092         or AND THEN for possible tracking.
12093         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
12094         case of while loops so we can track values in the loop body.
12095
12096 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
12097             Hristian Kirtchev  <kirtchev@adacore.com>
12098             Bob Duff  <duff@adacore.com>
12099
12100         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
12101         procedure cannot be a protected operation (it is a basic_declaration,
12102         not a subprogram_declaration).
12103         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
12104         Subp. Add logic for entry processing.
12105         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
12106         Determine whether an entry or subprogram of a protected or task type
12107         override an inherited primitive of an implemented interface.
12108         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
12109         Update the actual used in calls to Check_Overriding_Indicator.
12110         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
12111         generate the proper reference to the parent unit, for cross-reference.
12112         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
12113         Is_Formal.
12114         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
12115         (Add_Extra_Formal): Revise procedure to allow passing in associated
12116         entity, scope, and name suffix, and handle setting of the new
12117         Extra_Formals field.
12118         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
12119         pass new parameters. Add support for adding the new extra access formal
12120         for functions whose calls are treated as build-in-place.
12121         (Analyze_A_Return_Statement): Correct casing in error message.
12122         Move Pop_Scope to after Analyze_Function_Return, because an extended
12123         return statement really is a full-fledged scope. Otherwise, visibility
12124         doesn't work right. Correct use of "\" for continuation messages.
12125         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
12126         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
12127         the node doesn't get properly marked as analyzed.
12128         (Analyze_Subprogram_Body): If subprogram is a function that returns
12129         an anonymous access type that denotes a task, build a Master Entity
12130         for it.
12131         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
12132         proper usage of null exclusion in a result definition.
12133         (Process_Formals): Code cleanup and new error message.
12134         (Process_Formals): Detect incorrect application of null exclusion to
12135         non-access types.
12136         (Conforming_Types): Handle conformance between [sub]types and itypes
12137          generated for entities that have null exclusions applied to them.
12138         (Maybe_Primitive_Operation): Add an additional type retrieval when the
12139          base type is an access subtype. This case arrises with null exclusions.
12140         (New_Overloaded_Entity): Do not remove the overriden entity from the
12141         homonym chain if it corresponds with an abstract interface primitive.
12142         (Process_Formals): Replace membership test agains Incomplete_Kind with a
12143         call to the synthesized predicate Is_Incomplete_Type.
12144         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
12145         primitives.
12146         (Analyze_Subprogram_Declaration): Check that abstract interface
12147         primitives are abstract or null.
12148         (Analyze_Subprogram_Specification): Remove previous check for abstract
12149         interfaces because it was not complete.
12150         (Has_Interface_Formals): Removed.
12151
12152 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
12153             Javier Miranda  <miranda@adacore.com>
12154
12155         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
12156         of Analyze_Package_Body, to create Itype references for anonymous
12157         access types created in the package declaration, whose designated types
12158         may have only a limited view.
12159         (Analyze_Package_Specification): For the private part of a nested
12160         package, install private_with_clauses of enclosing compilation unit if
12161         we are in its visible part.
12162         (Declare_Inherited_Private_Subprograms): Complete barrier
12163         to ensure that the primitive operation has an alias to some parent
12164         primitive. This is now required because, after the changes done for the
12165         implementation of abstract interfaces, the contents of the list of
12166         primitives has entities whose alias attribute references entities of
12167         such list of primitives.
12168         (Analyze_Package_Specification): Simplify code that handles parent units
12169         of instances and formal packages.
12170         (Uninstall_Declarations): Check the convention consistency among
12171         primitive overriding operations of a tagged record type.
12172
12173 2006-10-31  Robert Dewar  <dewar@adacore.com>
12174             Hristian Kirtchev  <kirtchev@adacore.com>
12175             Javier Miranda  <miranda@adacore.com>
12176             Ed Schonberg  <schonberg@adacore.com>
12177
12178         * sem_ch8.adb: Minor error msg rewording
12179         (Undefined): When checking for misspellings, invert arguments (to get
12180         expected and found set right)
12181         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
12182         (Analyze_Generic_Renaming): Same fix
12183         (Use_One_Package): Do not take into account the internal entities of
12184         abstract interfaces during the analysis of entities that are marked
12185         as potentially use-visible.
12186         (Find_Type): Handle the case of an attribute reference for
12187         implementation defined attribute Stub_Type (simply let the analysis of
12188         the attribute reference rewrite it).
12189         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
12190         type that appears in a Use_Type clause.
12191         (Analyze_Object_Renaming): Add support for renaming of the Priority
12192         attribute.
12193         (Find_Type): In Ada 2005, a task type can be used within its own body,
12194         when it appears in an access definition.
12195         (Analyze_Object_Renaming): Remove warning on null_exclusion.
12196         (Analyze_Object_Renaming): Introduce checks for required null exclusion
12197          in a formal object declaration or in a subtype declaration.
12198         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
12199         (Check_Null_Exclusion): New local routine to
12200         Analyze_Subprogram_Renaming. Check whether the formals and return
12201         profile of a renamed subprogram have required null exclusions when
12202         their counterparts of the renaming already impose them.
12203         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
12204         Determine whether an entity is inside a generic scope.
12205         (In_Open_Scope): First pass of documentation update.
12206         (Find_Expanded_Name): Add support for shadow entities associated with
12207         limited withed packages. This is required to handle nested packages.
12208         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
12209         that makes a renaming of a limited withed package illegal.
12210
12211 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
12212             Ed Schonberg  <schonberg@adacore.com>
12213
12214         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
12215         Check_Overriding_Indicator.
12216         (Analyze_Task_Definition): Ditto.
12217         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
12218         (Check_Overriding_Indicator): To find overridden interface operation,
12219         examine only homonyms that have an explicit subprogram declaration, not
12220         inherited operations created by an unrelated type derivation.
12221         (Check_Overriding_Indicator): When checking for the presence of "null"
12222         in a procedure, ensure that the queried node is a procedure
12223         specification.
12224         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
12225         type when the formal is an access to variable.
12226         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
12227         (Analyze_Task_Type): Same addition
12228         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
12229         provide navigation capabilities for entries.
12230
12231 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
12232             Ed Schonberg  <schonberg@adacore.com>
12233             Javier Miranda  <miranda@adacore.com>
12234             Gary Dismukes  <dismukes@adacore.com>
12235
12236         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
12237         inherited from an interface ancestor by another interface in the
12238         context of an instance as 'late'.
12239         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
12240         of a call to a function that dispatches on access result.
12241         (Check_Dispatching_Operation): In case of late overriding of a primitive
12242         that covers abstract interface subprograms we register it in all the
12243         secondary dispatch tables associated with abstract interfaces.
12244         (Check_Dispatching_Call): Add check that a dispatching call is not made
12245         to a function with a controlling result of a limited type. This is a
12246         current implementation restriction.
12247         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
12248         (Check_Dispatching_Operation): Do no emit a warning if the controlling
12249         argument is an interface type that is a generic formal.
12250         (Is_Interface_Subprogram): Removed.
12251         (Check_Dispatching_Operation): If the subprogram is not a dispatching
12252         operation, check the formals to handle the case in which it is
12253         associated with an abstract interface type.
12254
12255 2006-10-31  Robert Dewar  <dewar@adacore.com>
12256             Ed Schonberg  <schonberg@adacore.com>
12257
12258         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
12259         Add new calls to this procedure during traversal
12260         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
12261         another unit if expansion is disabled.
12262
12263 2006-10-31  Robert Dewar  <dewar@adacore.com>
12264
12265         * sem_eval.adb (Compile_Time_Compare): Make use of information from
12266         Current_Value in the conditional case, to evaluate additional
12267         comparisons at compile time.
12268
12269 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
12270             Hristian Kirtchev  <kirtchev@adacore.com>
12271             Javier Miranda  <miranda@adacore.com>
12272
12273         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
12274         subprogram type to provide better diagnostics in case of ambiguity.
12275         (Covers): Handle coverage of formal and actual anonymous access types in
12276         the context of generic instantiation.
12277         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
12278         abstract interface types; this is required to handle concurrent types
12279         with discriminants and abstract interface types.
12280         (Covers): Include type coverage of both regular incomplete subtypes and
12281         incomplete subtypes of incomplete type visibles through a limited with
12282         clause.
12283
12284 2006-10-31  Robert Dewar  <dewar@adacore.com>
12285             Hristian Kirtchev  <kirtchev@adacore.com>
12286             Ed Schonberg  <schonberg@adacore.com>
12287
12288         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
12289         messages for entities in packages which are not used.
12290         (Collect_Synchronized_Interfaces): New procedure.
12291         (Overrides_Synchronized_Primitive): New function.
12292         (Denotes_Discriminant): Extend predicate to apply to task types.
12293         Add missing continuation marks in error msgs
12294         (Unqualify): New function for removing zero or more levels of
12295         qualification from an expression. There are numerous places where this
12296         ought to be used, but we currently only deal properly with zero or one
12297         level.
12298         (In_Instance); The analysis of the actuals in the instantiation of a
12299         child unit is not within an instantiation, even though the parent
12300         instance is on the scope stack.
12301         (Safe_To_Capture_Value): Exclude the case of variables that are
12302         renamings.
12303         (Check_Obsolescent): Removed
12304         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
12305         is an aliased view, even when rewritten as a reference to the target
12306         object in an assignment.
12307         (Get_Subprogram_Entity): New function
12308         (Known_To_Be_Assigned): New function
12309         (Type_Access_Level): Compute properly the access level of a return
12310         subtype that is an anonymous access type.
12311         (Explain_Limited_Type): Correct use of "\" for continuation messages.
12312         (Is_Transfer): The new extended_return_statement causes a transfer of
12313         control.
12314         (Has_Preelaborable_Initialization): New function
12315         (Has_Null_Exclusion): New function. Given a node N, determine whether it
12316         has a null exclusion depending on its Nkind.
12317         Change Is_Lvalue to May_Be_Lvalue
12318         (May_Be_Lvalue): Extensive additional code to deal with subprogram
12319         arguments (IN parameters are not Lvalues, IN OUT parameters are).
12320         (Safe_To_Capture_Value): Extend functionality so it can be used for
12321         the current value condition case.
12322         (Has_Compatible_Alignment): New function
12323         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
12324         objects to handle the Ada 2005 case, where aliasedness no longer implies
12325         that the object is constrained. In particular, for dereferenced names,
12326         the designated object must be assumed to be unconstrained.
12327         (Kill_Current_Values): Properly deal with the case where we encounter
12328         a loop in the scope chain.
12329         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
12330         a value.
12331         (Compile_Time_Constraint_Error): Improve error message in error case
12332
12333         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
12334         associated with entities of abstract interface primitives.
12335         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
12336
12337 2006-10-31  Robert Dewar  <dewar@adacore.com>
12338
12339         * s-osinte-tru64.adb: 
12340         Mark Asm statements Volatile to prevent warnings (seems a
12341         reasonable change anyway)
12342         Fixes new warnings
12343
12344         * s-mastop-irix.adb: Add Volatile to Asm statements
12345         Suppresses warning, and seems appropriate in any case
12346
12347         * s-osinte-vms.adb: Add Volatile to Asm statement
12348
12349         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
12350
12351         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
12352         returned.
12353         Add call to Check_Code_Statement
12354
12355 2006-10-31  Robert Dewar  <dewar@adacore.com>
12356             Ed Schonberg  <schonberg@adacore.com>
12357             Bob Duff  <duff@adacore.com>
12358
12359         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
12360         Synchronized_Present): Add Formal_Derived_Type_Definition and
12361         Private_Extension_Declaration to the list of assertions.
12362         (Is_Entry_Barrier_Function): New flag
12363         (Has_Self_Reference): New flag on aggregates, to indicate that they
12364         contain a reference to the enclosing type, inserted through a default
12365         initialization.
12366         (Next_Rep_Item): Move from Node4 to Node5.
12367         (Entity): Add this field for N_Attribute_Definition_Clause.
12368         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
12369         (N_Return_Object_Declaration): Remove this node kind. We now use
12370         N_Object_Declaration instead.
12371         (Actual_Designated_Subtype): Move to a different place to make room in
12372         N_Extended_Return_Statement.
12373         (Procedure_To_Call): Move to a different place to make room in
12374         N_Extended_Return_Statement.
12375         (Return_Type): Removed this field to make room in return statements
12376         (both kinds).
12377         (Return_Statement_Entity): New field in return statements, in part to
12378         replace Return_Type, and in part to support the fact that return
12379         statements are now pushed on the scope stack during semantic analysis.
12380         (Return_Object_Declarations): New field to support extended return
12381         statements.
12382         (N_Extended_Return_Statement): New node for extended_return_statement
12383         nonterminal.
12384         (N_Return_Object_Declaration): New node for part of
12385         extended_return_statement nonterminal. Needed because all the necessary
12386         fields won't fit in N_Extended_Return_Statement.
12387         Generic_associations now carry the Box_Present flag, to indicate a
12388         default for an actual in a partially parametrized formal package.
12389
12390         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
12391         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
12392         and for the new predefined dispatching policies: EDF_Across_Priorities,
12393         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
12394         Introduce new name Stub_Type for implementation defined attribute.
12395         Add pragma Preelaborable_Initialization
12396         Add entry for Priority attribute.
12397         Add Pragma_Wide_Character_Encoding
12398         (Get_Convention_Name): Given a convention id, this function returns the
12399         corresponding name id from the names table.
12400
12401 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
12402             Robert Dewar  <dewar@adacore.com>
12403             Bob Duff  <duff@adacore.com>
12404
12405         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
12406         print null exclusion twice in the case of an access definition,
12407         Implement new -gnatL switch
12408         Remove N_Return_Object_Declaration. We now use
12409         N_Object_Declaration instead. Implement the case for
12410         N_Extended_Return_Statement. Alphabetize the cases.
12411         Add cases for new nodes N_Extended_Return_Statement and
12412         N_Return_Object_Declaration. The code is not yet written.
12413         Update the output for N_Formal_Object_Declaration
12414         and N_Object_Renaming_Declaration.
12415         (Write_Itype): Account for the case of a modular integer subtype whose
12416         base type is private.
12417
12418 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
12419
12420         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
12421         Remove elaboration code, now done in the binder.
12422
12423         * s-rident.ads: Make this unit Preelaborate.
12424         (No_Restrictions): New constant used to clean up code and follow
12425         preelaborate constraints.
12426
12427         * s-stalib.adb: 
12428         Add System.Restrictions dependence, referenced directly from the
12429         binder generated file.
12430
12431 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
12432
12433         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
12434         True when AAMP extended floating-point is in use (48-bit). Change type
12435         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
12436         the two byte array types on AFloat. Change type of IV_Ilf overlay
12437         variable from Byte8 to ByteLF. Add appropriate initializations of
12438         floating-point overlays for AAMP cases.
12439
12440 2006-10-31  Javier Miranda  <miranda@adacore.com>
12441
12442         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
12443         (Get_Ceiling): New subprogram that returns
12444         the ceiling priority of the protected object.
12445         (Set_Ceiling): New subprogram that sets the new ceiling priority of
12446         the protected object.
12447
12448         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
12449
12450         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
12451
12452 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
12453
12454         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
12455         requeuing to the same protected object to give higher priority tasks
12456         the opportunity to execute.
12457
12458 2006-10-31  Robert Dewar  <dewar@adacore.com>
12459
12460         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
12461         add more precise check for the character sequence that follows '[' to
12462         avoid possible confusion in case if '[' is the last character of a
12463         string literals.
12464         (Scan_Wide): Always allow brackets encoding
12465
12466 2006-10-31  Olivier Hainque  <hainque@adacore.com>
12467
12468         * s-stchop.ads: make this unit preelaborate. This is desirable in
12469         general and made mandatory by the use of this unit by s-taprop which
12470         is itself preelaborate.
12471
12472         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
12473         Td_Events component.
12474
12475 2006-10-31  Vincent Celier  <celier@adacore.com>
12476
12477         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
12478         in file names.
12479
12480 2006-10-31  Vincent Celier  <celier@adacore.com>
12481
12482         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
12483
12484 2006-10-31  Vincent Celier  <celier@adacore.com>
12485
12486         * makegpr.adb (Check_Compilation_Needed): Take into account path names
12487         with spaces.
12488         (Check_Compilation_Needed): When checking a C or C++ source, do not
12489         resolve symbolic links.
12490         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
12491         When not in verbose mode and Ellipse is True, display "..." for the
12492         first argument with Display set to False.
12493         (Build_Global_Archive): Always set Display True for the first object
12494         file. Call Display_Command with Ellipse set to True.
12495
12496 2006-10-31  Matt Heaney  <heaney@adacore.com>
12497
12498         * a-crbtgo.ads: Commented each subprogram
12499
12500         * a-crbtgo.adb: Added reference to book from which algorithms were
12501         adapted.
12502
12503         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
12504         indicate which child.
12505         (Generic_Conditional_Insert): changed parameter name from "Success" to
12506         "Inserted".
12507         (Generic_Unconditional_Insert_With_Hint): improved algorithm
12508
12509         * a-coorse.adb (Replace_Element): changed parameter name in call to
12510         conditional insert operation.
12511
12512         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
12513
12514         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
12515         Generic_Iteration
12516
12517         * a-ciorse.adb (Replace_Element): changed parameter name in call to
12518         conditional insert operation.
12519
12520         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
12521         Generic_Iteration.
12522
12523         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
12524         instead of mode inout.
12525
12526         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
12527         draft
12528         (Generic_Read): preserve existing buckets array if possible
12529         (Generic_Write): don't send buckets array length anymore
12530
12531         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
12532         instead of mode inout.
12533
12534         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
12535         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
12536
12537         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
12538         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
12539         (Replace_Element): local operation is now an instantiation
12540
12541         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
12542         check current length.
12543         (Generic_Replace_Element): new operation
12544
12545 2006-10-31  Doug Rupp  <rupp@adacore.com>
12546
12547         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
12548         Call TBK$SYMBOLIZE without omitting parameters.
12549
12550 2006-10-31  Vincent Celier  <celier@adacore.com>
12551
12552         * symbols-processing-vms-ia64.adb,
12553         symbols-processing-vms-alpha.adb (Process): Do not include symbols
12554         that come from generic instantiations in bodies.
12555
12556 2006-10-31  Pat Rogers  <rogers@adacore.com>
12557
12558         * a-rttiev.ads, a-rttiev.adb: 
12559         This is a significant redesign primarily for the sake of automatic
12560         timer task termination but also to fix a design flaw.
12561         Therefore we are now using an RTS lock, instead of a protected
12562         object, to provide mutual exclusion to the queue of pending events
12563         and the type Timing_Event is no longer a protected type.
12564
12565 2006-10-31  Robert Dewar  <dewar@adacore.com>
12566             Cyrille Comar  <comar@adacore.com>
12567             Ben Brosgol  <brosgol@adacore.com>
12568
12569         * debug.adb:  Update flags documentation
12570
12571         * gnat_ugn.texi: Add documentation for new -gnatwq switch
12572         Clean up documentation for several other warning switches
12573         Clarify how task stack size can be specified with various
12574         versions of Windows.
12575         Add note that -gnatVo includes ranges including loops
12576         Add documentation for -gnatL switch
12577         Add note on elaboration warning for initializing variables
12578         Add documentation for new -gnatwt warning switch
12579         Document new form of pragma Warnings (On|Off, string)
12580         Add comment on use of pragma Warnings to control warnings
12581         Add documentation for -gnatjnn switch
12582         Modify section on interfacing with C for VMS 64-bit.
12583         Add doc for -gnatVe/E
12584         Add documentation of new warning flags -gnatww/-gnatwW
12585         Add warnings about address clause overlays to list of warnings
12586         (Exception Handling Control): Document that the option --RTS must be
12587         used consistently for gcc and gnatbind.
12588         Clarify that inlining is not always possible
12589         Update documentation on pragma Unchecked_Union.
12590
12591         * gnat_rm.texi: 
12592         Add documentation for new extended version of pragma Obsolescent
12593         Add documentation for implementation defined attribute 'Stub_Type.
12594         Add note on use of Volatile in asm statements
12595         Add documentation on use of pragma Unreferenced in context clause
12596         Document new form of pragma Warnings (On|Off, pattern)
12597         Document pragma Wide_Character_Encoding
12598         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
12599         enforced if code generation is active.
12600         Add section on pragma Suppress to document GNAT specific check
12601         Alignment_Check
12602         Clarify difference between No_Dispatching_Calls & No_Dispatch.
12603         Add documentation for pragma Restrictions (No_Elaboration_Code)
12604
12605         * gnat-style.texi: 
12606         Add comments on layout of subprogram local variables in the
12607         presence of nested subprograms.
12608
12609         * ug_words: Resync.
12610
12611         * elists.ads: Minor reformatting
12612         Node returns Node_Or_Entity_Id (doc change only)
12613
12614         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
12615
12616         * g-arrspl.ads (Create): Update comments.
12617
12618         * sem.ads: Add details on the handling of the scope stack.
12619
12620         * usage.adb: Update documentation.
12621
12622         * validsw.ads, validsw.adb: 
12623         Add definition of Validity_Check_Components and implement -gnatVe/E
12624
12625         * vms_data.ads: Add missing VMS qualifiers.
12626
12627         * s-addope.ads: Add documentation on overflow and divide by zero
12628
12629 2006-10-31  Robert Dewar  <dewar@adacore.com>
12630             Thomas Quinot  <quinot@adacore.com>
12631             Arnaud Charlet  <charlet@adacore.com>
12632
12633         * fmap.adb: Put routines in alpha order
12634
12635         * g-boumai.ads: Remove redundant 'in' keywords
12636
12637         * g-cgi.adb: Minor reformatting
12638
12639         * g-cgi.ads: Remove redundant 'in' keywords
12640
12641         * get_targ.adb: Put routines in alpha order
12642
12643         * prj-attr.ads: Minor reformatting
12644
12645         * s-atacco.ads: Minor reformatting
12646
12647         * scn.adb: Put routines in alpha order
12648
12649         * sinput-l.adb: Minor comment fix
12650
12651         * sinput-p.adb: Minor comment fix
12652
12653         * s-maccod.ads: Minor reformatting
12654
12655         * s-memory.adb: Minor reformatting
12656
12657         * s-htable.adb: Fix typo in comment.
12658
12659         * s-secsta.adb: Minor comment update.
12660
12661         * s-soflin.adb: Minor reformatting
12662
12663         * s-stoele.ads: 
12664         Add comment about odd qualification in Storage_Offset declaration
12665
12666         * s-strxdr.adb: 
12667         Remove unnecessary 'in' keywords for formal parameters.
12668
12669         * treeprs.adt: Minor reformatting
12670
12671         * urealp.adb: Put routines in alpha order
12672
12673         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
12674         taking string.
12675
12676         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
12677
12678         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
12679
12680         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
12681         workaround as on other platforms.
12682
12683         * g-eacodu-vms.adb: Remove redundant 'in' keywords
12684         * g-expect-vms.adb: Remove redundant 'in' keywords
12685
12686         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
12687         clear error message if the list-of-files file cannot be opened.
12688
12689         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
12690         equality operator is always visible.
12691
12692         * lang.opt: Woverlength-strings: New option.
12693
12694         * nmake.adt: 
12695         Update copyright, since nmake.ads and nmake.adb have changed.
12696
12697         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
12698         (Binder_Output_Time_Stamps_Set): removed.
12699         (Old_Binder_Output_Time_Stamp): idem.
12700         (New_Binder_Output_Time_Stamp): idem.
12701         (Recording_Time_From_Last_Bind): idem.
12702         (Recording_Time_From_Last_Bind): Make constant.
12703
12704         * output.ads, output.adb (Write_Str): Allow LF characters
12705         (Write_Spaces): New procedure
12706
12707         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
12708
12709         * inline.adb: Minor reformatting
12710
12711         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
12712
12713         * s-mastop-vms.adb: Remove redundant 'in' keywords
12714
12715         * s-osprim-vms.adb: Remove redundant 'in' keywords
12716
12717         * s-trafor-default.adb: Remove redundant 'in' keywords
12718
12719         * 9drpc.adb: Remove redundant 'in' keywords
12720
12721         * s-osinte-mingw.ads: Minor reformatting
12722
12723         * s-inmaop-posix.adb: Minor reformatting
12724
12725         * a-direio.ads: Remove quotes from Compile_Time_Warning message
12726
12727         * a-exexda.adb: Minor code reorganization
12728
12729         * a-filico.adb: Minor reformatting
12730
12731         * a-finali.adb: Minor reformatting
12732
12733         * a-nudira.ads: Remove quote from Compile_Time_Warning message
12734
12735         * a-numeri.ads: Minor reformatting
12736
12737         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
12738
12739         * exp_pakd.ads: Fix obsolete comment
12740
12741         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
12742         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
12743         Probably not a bug, but certainly neater and more efficient.
12744
12745         * a-tienio.adb: Minor reformatting
12746
12747         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
12748         Avoid assuming low bound of string is 1.
12749
12750         * gnatbind.adb: Change Bindusg to package and rename procedure as
12751         Display, which now ensures that it only outputs usage information once.
12752         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
12753
12754         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
12755         Table'First.
12756
12757         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
12758         warning.
12759         (Match): Add pragma Assert to ensure that Matches'First is zero
12760
12761         * g-regpat.ads (Match): Document that Matches lower bound must be zero
12762
12763         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
12764         documented preconditions (also kills warnings about bad indexes).
12765
12766         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
12767         is 1.
12768         (Build_Import_Library): Ditto;
12769
12770         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
12771
12772         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
12773
12774         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
12775         lower bound of choice table is 1.
12776
12777         * sem_case.ads (Analyze_Choices): Document that lower bound of
12778         Choice_Table is 1.
12779
12780         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
12781         string is 1.
12782
12783         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
12784         and add appropriate Assert pragma to suppress warnings.
12785
12786         * atree.h, atree.ads, atree.adb
12787         Change Elist24 to Elist25
12788         Add definitions of Field28 and Node28
12789         (Traverse_Field): Use new syntactic parent table in sinfo.
12790
12791         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
12792
12793         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
12794
12795         * exp_tss.adb: Put routines in alpha order
12796
12797         * fe.h: Remove redundant declarations.
12798
12799 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
12800
12801         * utils.c (builtin_function): Rename to gnat_builtin_function.
12802         Move common code to add_builtin_function.
12803         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
12804         gnat_builtin_function.
12805         * gigi.h (builtin_function): Rename to gnat_builtin_function.
12806         Change the signature.
12807
12808 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
12809
12810         * Makefile.in: Add TEXI2PDF definition.
12811         * Make-lang.in: Add "ada.pdf" target.
12812
12813 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
12814
12815         * decl.c, utils.c: Fix comment typos.
12816         * utils.c: Fix a typo.
12817
12818 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
12819
12820         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
12821         on "pure" Ada subprograms if SJLJ exceptions are used.
12822         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
12823         on the declaration node of JMPBUF_SAVE.
12824         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
12825         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
12826         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
12827
12828 2006-08-20  Laurent Guerby  <laurent@guerby.net>
12829
12830         PR ada/28716
12831         g-socket.adb (Bind_Socket): Call Set_Address.
12832
12833 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
12834
12835         PR ada/15802
12836         * decl.c (same_discriminant_p): New static function.
12837         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
12838         subtype and we have discriminants, fix up the COMPONENT_REFs
12839         for the discriminants to make them reference the corresponding
12840         fields of the parent subtype after it has been built.
12841
12842 2006-09-15  Roger Sayle  <roger@eyesopen.com>
12843
12844         PR ada/18817
12845         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
12846         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
12847
12848 2006-09-13  Olivier Hainque  <hainque@adacore.com>
12849
12850         PR ada/29025
12851         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
12852         of a SAVE_EXPR, just make the operand addressable/not-readonly and
12853         let the common gimplifier code make and propagate a temporary copy.
12854         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
12855         out/in-out actuals and defer setting the addressable/readonly bits
12856         to the gimplifier.
12857
12858 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
12859
12860         PR ada/28591
12861         * decl.c (components_to_record): Defer emitting debug info for the
12862         record type associated with the variant until after we are sure to
12863         actually use it.
12864
12865 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
12866
12867         PR ada/21952
12868         * gigi.h (gnat_internal_attribute_table): Declare.
12869         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
12870         * utils.c (gnat_internal_attribute_table): New global variable.
12871         (builtin_function): Always call decl_attributes on the builtin.
12872         (handle_const_attribute): New static function.
12873         (handle_nothrow_attribute): Likewise.
12874
12875 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
12876
12877         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
12878
12879 2006-06-23  Olivier Hainque  <hainque@adacore.com>
12880
12881         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
12882         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
12883
12884 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
12885             Eric Botcazou  <ebotcazou@adacore.com>
12886
12887         PR ada/18692
12888         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
12889         check-gnat into check-acats.
12890
12891 2006-06-17  Karl Berry  <karl@gnu.org>
12892
12893         * gnat-style.texi (@dircategory): Use "Software development"
12894         instead of "Programming", following the Free Software Directory.
12895
12896 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12897
12898         PR ada/27944
12899         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
12900
12901 2006-06-06  Laurent Guerby  <laurent@guerby.net>
12902
12903         PR ada/27769
12904         mlib-utl.adb: Use Program_Name.
12905
12906 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
12907
12908         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
12909         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
12910         trans.c, utils.c: Fix comment typos.  Follow spelling
12911         conventions.
12912         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
12913         conventions.
12914
12915 2006-05-19  Nicolas Setton  <setton@adacore.com>
12916
12917         * misc.c (gnat_dwarf_name): New function.
12918         (LANG_HOOKS_DWARF_NAME): Define to it.
12919
12920 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
12921
12922         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
12923         (ada/misc.o): Likewise.
12924         (ada/utils.o): Likewise.
12925
12926 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
12927
12928         * Makefile.in: Add Ada support for GNU/kFreeBSD.
12929         * s-osinte-kfreebsd-gnu.ads: New file.
12930
12931 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
12932
12933         * Make-lang.in: Rename docdir to gcc_docdir.
12934
12935 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
12936
12937         * gigi.h (get_ada_base_type): Delete.
12938         * utils2.c (get_ada_base_type): Likewise.
12939         * trans.c (convert_with_check): Operate in the real base type.
12940
12941 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12942
12943         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
12944
12945 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
12946
12947         * utils.c (create_var_decl): Use have_global_bss_p when deciding
12948         whether to make the decl common.
12949
12950 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
12951
12952         * Make-lang.in (Ada): Remove.
12953         (.PHONY): Remove Ada
12954
12955 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
12956
12957         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
12958         aggregate, check the interpretations of the other operand to find one
12959         that may be a boolean array.
12960
12961         (Analyze_Selected_Component): Fix flow-of-control typo in case where
12962         the prefix is a private extension.
12963
12964 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
12965
12966         PR ada/26315
12967         * utils2.c (find_common_type): If both input types are BLKmode and
12968         have the same constant size, keep using the first one.
12969
12970         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
12971
12972         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
12973
12974         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
12975
12976 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
12977
12978         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, 
12979         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
12980         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, 
12981         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
12982         Abort_Defer/Undefer pairs to avoid the possibility of a task being
12983         aborted while owning a lock.
12984
12985 2006-02-17  Javier Miranda  <miranda@adacore.com>
12986             Robert Dewar  <dewar@adacore.com>
12987
12988         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
12989         through an access to class-wide interface we force the displacement of
12990         the pointer to the allocated object to reference the corresponding
12991         secondary dispatch table.
12992         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
12993         if Long_Shifts are supported on the target, even if 64 bit divides
12994         are not supported (configurable run time mode).
12995         (Expand_N_Type_Conversion): Do validity check if validity checks on
12996         operands are enabled.
12997         (Expand_N_Qualified_Expression): Do validity check if validity checks
12998         on operands are enabled.
12999
13000 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
13001
13002         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
13003         must be materialized when the renamed expression is an explicit
13004         dereference.
13005
13006 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
13007
13008         * freeze.adb (Statically_Discriminated_Components): Return false if
13009         the bounds of the type of the discriminant are not static expressions.
13010
13011         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
13012         the bounds of the discriminant type are not static.
13013
13014 2006-02-17  Robert Dewar  <dewar@adacore.com>
13015
13016         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
13017         then we close To if it is valid.
13018
13019 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
13020
13021         * init.c (facility_resignal_table): new array
13022         (__gnat_default_resignal_p): enhance default predicate to resignal if
13023         VMS condition has one of the predefined facility codes.
13024
13025 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
13026
13027         * Makefile.in: Use VMS64 specialized versions of several units in
13028         Interfaces.C hierarchy to be compatible with HP C default size choices.
13029         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
13030
13031 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
13032
13033         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
13034         instantiation, the corresponding entity is the related_instance of the
13035         wrapper package created for the instance.
13036
13037 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
13038
13039         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
13040         the current instance is nested within another instance in a child unit.
13041
13042 2006-02-17  Javier Miranda  <miranda@adacore.com>
13043             Ed Schonberg  <schonberg@adacore.com>
13044
13045         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
13046         type we cannot inherit the primitive operations; we inherit the
13047         Corresponding_Record_Type (which has the list of primitive operations).
13048         (Check_Anonymous_Access_Types): When creating anonymous access types for
13049         access components, use Rewrite in order to preserve the tree structure,
13050         for ASIS use.
13051         (Analyze_Object_Declaration): For limited types with access
13052         discriminants with defaults initialized by an aggregate, obtain
13053         subtype from aggregate as for other mutable types.
13054         (Derived_Type_Declaration): If the derived type is a limited interface,
13055         set the corresponding flag (Is_Limited_Record is not sufficient).
13056
13057 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
13058
13059         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
13060         to inline a function that returns an unconstrained type, the return
13061         expression must be the first variable declared in the body of the
13062         function.
13063
13064 2006-02-17  Javier Miranda  <miranda@adacore.com>
13065
13066         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
13067         abstract interface type, the static analysis is not enough to know if
13068         the interface is implemented or not by the source tagged type. Hence
13069         we must pass the work to the expander to generate the required code to
13070         evaluate the conversion at run-time.
13071         (Resolve_Equality_Op): Do not apply previous
13072         transformation if expansion is disasbled, to prevent anomalies when
13073         locating global references in a generic unit.
13074
13075 2006-02-17  Vincent Celier  <celier@adacore.com>
13076
13077         * snames.ads, snames.adb: New standard names for new project attributes:
13078         archive_builder, archive_indexer, compiler_pic_option,
13079         config_body_file_name, config_body_file_name_pattern,
13080         config_file_switches, config_file_unique, config_spec_file_name,
13081         config_spec_file_name_pattern, default_builder_switches,
13082         default_global_compiler_switches, default_language,
13083         dependency_file_kind, global_compiler_switches, include_path,
13084         include_path_file, language_kind, linker_executable_option,
13085         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
13086         roots, runtime_project.
13087
13088 2006-02-17  Matthew Heaney  <heaney@adacore.com>
13089
13090         * a-convec.ads, a-convec.adb: 
13091         (operator "&"): handle potential overflow for large index types
13092         (Insert): removed Contraint_Error when using large index types
13093         (Insert_Space): removed Constraint_Error for large index types
13094         (Length): moved constraint check from Length to Insert
13095
13096         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
13097         as not null access.
13098         Explicit raise statements now include an exception message.
13099         (operator "&"): handle potential overflow for large index types
13100         (Insert): removed Contraint_Error when using large index types
13101         (Insert_Space): removed Constraint_Error for large index types
13102         (Length): moved constraint check from Length to Insert
13103
13104 2006-02-17  Robert Dewar  <dewar@adacore.com>
13105
13106         * s-wchcnv.adb: Document handling of [ on output (we do not change
13107         this to ["5B"] and the new comments say why not.
13108
13109         * gnat_ugn.texi: 
13110         Add note for -gnatVo that this now includes the cases of type
13111         conversions and qualified expressions.
13112         Add comments on handling of brackets encoding for Text_IO
13113
13114 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
13115             Thomas Quinot  <quinot@adacore.com>
13116             Robert Dewar  <dewar@adacore.com>
13117             Javier Miranda  <miranda@adacore.com>
13118
13119         * expander.adb: Fix typo in comment
13120
13121         * exp_pakd.adb: Fix typo
13122         Minor comment reformatting.
13123
13124         * g-dyntab.adb: Minor reformatting
13125
13126         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
13127         aliased subprograms to look for the abstract interface subprogram.
13128
13129 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
13130
13131         * env.c (__gnat_setenv): Use size_t.
13132         (__gnat_unsetenv): Likewise.
13133         (__gnat_clearenv): Likewise.
13134
13135 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
13136
13137         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
13138
13139 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
13140
13141         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
13142         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
13143         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
13144         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
13145         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
13146         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
13147         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
13148         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
13149         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
13150         no longer used.
13151
13152 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
13153
13154         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
13155         protection against race conditions is not needed.
13156         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
13157         fallback handler.
13158         (Set_Specific_Handler): Add mutual exclusive access to the specific
13159         handler.
13160         (Specific_Handler): Add mutual exclusive access for retrieving the
13161         specific handler.
13162
13163         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
13164         back handler.
13165
13166         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
13167         Fall_Back_Handler and Specific_Handler.
13168
13169         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
13170         termination handlers.
13171         Set two different owerflow depending on the maximal stack size.
13172
13173         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
13174         protection against race conditions is not needed when executing the
13175         task termination handler.
13176
13177 2006-02-13  Robert Dewar  <dewar@adacore.com>
13178
13179         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
13180         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
13181         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
13182         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
13183         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
13184         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
13185         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
13186         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
13187         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
13188         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
13189         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
13190         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
13191         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
13192         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
13193         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
13194         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
13195         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
13196         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
13197         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
13198         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
13199         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
13200         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
13201         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
13202         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
13203         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
13204         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
13205         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
13206         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
13207         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
13208         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
13209         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
13210         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
13211         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
13212         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
13213         reformatting.
13214
13215 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
13216
13217         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
13218         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
13219         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
13220         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
13221         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
13222         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
13223         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
13224         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
13225         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
13226
13227 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
13228
13229         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
13230         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
13231         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
13232         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
13233         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
13234         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
13235         replaced by anonymous access type.
13236         (pthread_sigmask): Now take an access sigset_t
13237
13238         * s-osinte-hpux.ads:  Ditto.
13239         (pthread_mutex_t, pthread_cond_t): Update definitions to support
13240         properly 32 and 64 bit ABIs.
13241
13242 2006-02-13  Pascal Obry  <obry@adacore.com>
13243
13244         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
13245         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
13246         s-taprop-linux.adb, s-taprop-solaris.adb,
13247         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
13248         adjustement is already done when calling this routine.
13249
13250 2006-02-13  Pascal Obry  <obry@adacore.com>
13251
13252         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
13253         table to take advantage of the 16 priority levels available on Windows
13254         2000 and XP. On NT4 there are only 7 priority levels, this is properly
13255         supported by this new mapping.
13256
13257 2006-02-13  Nicolas Setton  <setton@adacore.com>
13258
13259         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
13260         (get_encoding): New subprogram. Extracts the encodings from an encoded
13261         Ada name.
13262
13263 2006-02-13  Pascal Obry  <obry@adacore.com>
13264             Nicolas Roche  <roche@adacore.com>
13265             Arnaud Charlet  <charlet@adacore.com>
13266
13267         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
13268         support.
13269         (__gnat_try_lock): Add unicode support by using a specific section on
13270         Windows.
13271         (__gnat_get_current_dir): Idem.
13272         (__gnat_open_read): Idem.
13273         (__gnat_open_rw): Idem.
13274         (__gnat_open_create): Idem.
13275         (__gnat_create_output_file): Idem.
13276         (__gnat_open_append): Idem.
13277         (__gnat_open_new): Idem.
13278         (__gnat_file_time_name): Idem.
13279         (__gnat_set_file_time_name): Idem.
13280         (__gnat_stat): Idem.
13281         (win32_no_block_spawn): Idem.
13282         (__gnat_locate_exec_on_path): Idem.
13283         (__gnat_opendir): New routine.
13284         (__gnat_closedir): Idem.
13285         (__gnat_readdir): Add new parameter length (pointer to int). Update
13286         implementation to use it and add specific Win32 code for Unicode
13287         support.
13288         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
13289         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
13290         (convert_addresses): Do not define this dummy routine on VMS.
13291
13292         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
13293         runtime Unicode support will be activated.
13294         (S2WS): String to Wide-String conversion. This version just copy a
13295         string in non Unicode version.
13296         (WS2S): Wide-String to String conversion. This version just copy a
13297         string in non Unicode version.
13298
13299         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
13300         (Open): Now import __gnat_opendir from adaint.c.
13301         (Read): Change the implementation to support unicode characters. It is
13302         not possible to use strlen() on Windows as this version supports only
13303         standard ASCII characters. So the length of the directory entry is now
13304         returned from the imported __gnat_readdir routine.
13305         Update copyright notice.
13306
13307         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
13308         (opendir): Moved to adaint.c.
13309
13310         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
13311         (Get_Directory): Fix wrong indexing.
13312         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
13313         __gnat_getenv from env.c
13314         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
13315         from env.c
13316
13317         * env.h, env.c: New file.
13318
13319         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
13320         adaint.c by __gnat_getenv from env.c
13321
13322         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
13323         adaint.c by __gnat_getenv from env.c
13324
13325         * Make-lang.in: Add env.o in the list of C object needed by gnat1
13326         and gnatbind.
13327         Update dependencies.
13328
13329 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13330             Olivier Hainque  <hainque@adacore.com>
13331             Eric Botcazou  <ebotcazou@adacore.com>
13332
13333         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
13334         
13335         * gigi.h (value_factor_p): Add prototype and description, now public.
13336
13337         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
13338         promotion for field with rep clause if the associated size was proven
13339         to be in error.
13340         Expand comments describing attempts to use a packable type.
13341         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
13342         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
13343         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
13344         necessary since these are not different types and pointers may
13345         actually designate any subtype in this hierarchy.
13346         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
13347         discriminants but put them into record only if not Unchecked_Union;
13348         pass flag to components_to_record showing Unchecked_Union.
13349         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
13350         components before variants; don't set TYPE_UNCHECKED_UNION_P.
13351         (components_to_record): New argument UNCHECKED_UNION.
13352         Remove special case code for Unchecked_Union and instead use main code
13353         with small changes.
13354
13355         PR ada/26096
13356         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
13357         variable with the expression being built, only its inner field.
13358
13359         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
13360         emit_sequence_entry_statements.
13361         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
13362         (establish_gnat_vms_condition_handler): Move before
13363         Subprogram_Body_to_gnu.
13364         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
13365         for a subprogram if it has a foreign convention or is exported.
13366         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
13367         substituted for a CONST_DECL.
13368         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
13369         Etype to assoc_to_constructor.
13370         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
13371         discriminants of Unchecked_Union.
13372         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
13373         don't need cluttering preprocessor directives.
13374         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
13375         condition handler as current in the compiled function.
13376         (body_with_handlers_p): New function. Tell whether a given sequence of
13377         statements node is attached to a package or subprogram body and involves
13378         exception handlers possibly nested within inner block statements.
13379         (emit_sequence_entry_statements): New function, to emit special
13380         statements on entry of sequences when necessary. Establish GNAT
13381         condition handler in the proper cases for VMS.
13382         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
13383         emit_sequence_entry_statements.
13384
13385         * utils2.c (find_common_type): If both input types are BLKmode and
13386         have a constant size, use the smaller one.
13387         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
13388         the same.
13389
13390         * utils.c (value_factor_p): Make public, to allow uses from other gigi
13391         units.
13392         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
13393         (convert, case UNION_TYPE): Remove special treatment for unchecked
13394         unions.
13395
13396         PR ada/18659
13397         (update_pointer_to): Update variants of pointer types to unconstrained
13398         arrays by attaching the list of fields of the main variant.
13399
13400 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
13401             Robert Dewar  <dewar@adacore.com>
13402
13403         * a-exexpr.adb, a-exexpr-gcc.adb
13404         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
13405         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
13406         Remove code unused for exception propagation for the compiler itself
13407         from a-except.adb and update to still share separate packages.
13408
13409         * a-except.ads, a-except.adb: Ditto.
13410         Add comments that this version is now used only by the compiler and
13411         other basic tools. The full version that includes the Ada 2005 stuff
13412         is in separate files a-except-2005.ads/adb. The reason is that we do
13413         not want to cause bootstrap problems with compilers not recognizing
13414         Wide_Wide_String.
13415         Add exception reason code PE_Implicit_Return
13416         Add new exception reason code (Null Exception_Id)
13417
13418         * a-except-2005.adb, a-except-2005.ads: New files.
13419
13420         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
13421
13422         * s-wchcon.adb: New file.
13423
13424         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
13425         (traceback.o deps): Likewise.
13426         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
13427         Activate build of GMEM instrumentation library on VMS targets.
13428         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
13429         Use a-except-2005.ads/adb for all run-time library builds unless
13430         specified otherwise.
13431         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
13432         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
13433         Use s-parame.adb on all native platforms.
13434         Use s-parame-vxworks.adb on all vxworks platforms.
13435         Add env.c env.h in LIBGNAT_SRCS
13436         Add env.o in LIBGNAT_OBJS
13437         (GNATMAKE_OBJS): Remove ctrl_c.o object.
13438         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
13439         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
13440         supports VxWorks 6 RTPs.
13441         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
13442         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
13443
13444         * types.h, types.ads (Terminate_Program): New exception
13445         Add comment on modifying multiple versions of a-except.adb when the
13446         table of exception reasons is modified.
13447         Add exception reason code PE_Implicit_Return
13448         Add new exception reason code (Null Exception_Id)
13449
13450         * clean.adb (Initialize): Get the target parameters before checking
13451         if target is OpenVMS. Move the OpenVMS specific code here from package
13452         body elaboration code.
13453
13454 2006-02-13  Thomas Quinot  <quinot@adacore.com>
13455             Vincent Celier  <celier@adacore.com>
13456             Robert Dewar  <dewar@adacore.com>
13457
13458         * ali-util.adb (Get_File_Checksum): Update to account for change in
13459         profile of Initialize_Scanner.
13460
13461         * gprep.adb (Gnatprep): Update to account for change in profile of
13462         Initialize_Scanner.
13463         (Process_One_File): Same.
13464
13465         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
13466         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
13467         that behaviour using the new Unit information recorded in the source
13468         files table, rather than going through all units every time.
13469         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
13470         (Get_Source_Unit): Same.
13471
13472         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
13473         change in profile of Initialize_Scanner.
13474         (Prepare_To_Preprocess): Same.
13475
13476         * lib.ads: Fix typo in comment (templace -> template).
13477
13478         * prj-part.adb (Parse_Single_Project): Update to account for change in
13479         profile of Initialize_Scanner.
13480
13481         * scn.adb (Initialize_Scanner): Account for change in profile of
13482         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
13483         Also record the association of the given Source_File_Index to the
13484         corresponding Unit_Number_Type.
13485
13486         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
13487         procedure.
13488         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
13489         Remove Unit formal for generic scanner: this formal
13490         is only relevant to Scn (the scanner instance used to parse Ada source
13491         files), not to other instances. Update comment accordingly.
13492         (Scan): Use new function Snames.Is_Keyword_Name.
13493
13494         * sinfo-cn.adb: Fix typo in comment.
13495
13496         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
13497         Unit.
13498
13499         * sinput.ads (Source_File_Record): New component Unit, used to capture
13500         the unit identifier (if any) associated to a source file.
13501
13502         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
13503         Unit in Source_File_Record.
13504
13505         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
13506         in profile of Initialize_Scanner.
13507
13508         * scans.adb (Initialize_Ada_Keywords): New procedure
13509
13510         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
13511         Ada keywords in the Namet table, without the need to call
13512         Initialize_Scanner.
13513
13514         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
13515         (Is_Keyword_Name): New function
13516
13517         * snames.ads: Add subtype Configuration_Pragma_Names
13518         Add pragma Ada_2005 (synonym for Ada_05)
13519         (Is_Keyword_Name): New function
13520
13521         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
13522
13523 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
13524
13525         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
13526         index.
13527
13528         * a-stwima.adb (To_Set): Add extra check when N = 0.
13529
13530         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
13531
13532 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
13533
13534         * s-parame-mingw.adb, s-parame-linux.adb,
13535         s-parame-solaris.adb: Removed, replaced by s-parame.adb
13536
13537         * s-parame-vxworks.ads: Fix typo.
13538
13539         * s-parame-vxworks.adb: New file.
13540
13541         * s-parame.adb: Version now used by all native platforms.
13542         (Default_Stack_Size): Use 2 megs for default stack size and use
13543         __gl_default_stack_size when available.
13544         (Minimum_Stack_Size): Use 12K.
13545
13546         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
13547         (Create_Task): Refine implementation taking advantage of the XP stack
13548         size support. On XP, we now create the thread using the flag
13549         STACK_SIZE_PARAM_IS_A_RESERVATION.
13550
13551         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
13552
13553         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
13554         XP and 0 on older Windows versions.
13555
13556         * interfac-vms.ads: Removed, no longer used.
13557
13558 2006-02-13  Matthew Heaney  <heaney@adacore.com>
13559
13560         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 
13561         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 
13562         a-cohase.adb: All explicit raise statements now include an exception
13563         message.
13564
13565         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
13566         (Update_Element_Preserving_Key): renamed op to just Update_Element.
13567         Explicit raise statements now include an exception message
13568
13569         * a-cihase.ads, a-cohase.ads: Removed comment.
13570
13571         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
13572         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
13573         a-szbzha.adb, a-szfzha.ads: New files.
13574
13575 2006-02-13  Matthew Heaney  <heaney@adacore.com>
13576
13577         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
13578         quicksort.
13579
13580 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
13581
13582         * lang.opt: Wvariadic-macros: New option.
13583         Wold-style-definition: Likewise.
13584         Wmissing-format-attribute: Likewise.
13585
13586         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
13587         -Wold-style-definition and -Wmissing-format-attribute.
13588
13589 2006-02-13  Robert Dewar  <dewar@adacore.com>
13590
13591         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
13592
13593         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
13594
13595 2006-02-13  Nicolas Roche  <roche@adacore.com>
13596
13597         * a-envvar.adb, a-envvar.ads: New files.
13598
13599 2006-02-13  Douglas Rupp  <rupp@adacore.com>
13600
13601         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
13602
13603         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
13604
13605 2006-02-13  Pat Rogers  <rogers@adacore.com>
13606
13607         * a-rttiev.adb, a-rttiev.ads: New files.
13608
13609 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
13610
13611         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
13612         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
13613
13614         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
13615
13616 2006-02-13  Robert Dewar  <dewar@adacore.com>
13617
13618         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 
13619         sem_case.adb: Minor code reorganization (not Present should be No)
13620
13621 2006-02-13  Geert Bosch  <bosch@adacore.com>
13622             Gary Dismukes  <dismukes@adacore.com>
13623
13624         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
13625         0, since the lower bound of the actual string may be greater than one.
13626
13627         PR ada/20753
13628         * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
13629         layout is requested.
13630
13631 2006-02-13  Vincent Celier  <celier@adacore.com>
13632
13633         * back_end.adb (Scan_Compiler_Arguments): Check if
13634         Search_Directory_Present is True and, if it is, add the argument in
13635         the source search directory path.
13636
13637         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
13638         Search_Directory_Present to True.
13639
13640 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
13641
13642         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
13643         volatile, to tell the compiler to preserve this variable at any level
13644         of optimization.
13645         (Gen_Versions_Ada): Temporarily work around codegen bug.
13646
13647 2006-02-13  Vincent Celier  <celier@adacore.com>
13648
13649         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
13650         gcc to link with option -shared-libgcc.
13651         (Gnatlink): Remove duplicate switches -shared-libgcc
13652
13653 2006-02-13  Robert Dewar  <dewar@adacore.com>
13654
13655         * gnatvsn.ads (Current_Year): New constant, used to easily update
13656         copyright on all GNAT tools.
13657
13658         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
13659         copyright notice.
13660
13661 2006-02-13  Robert Dewar  <dewar@adacore.com>
13662
13663         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
13664         after hyphen (small aesthetic change useful for a range of numbers
13665         using ^-^.
13666         Suppress range checks for a couple of assignments which otherwise
13667         cause validity checks with validity checking turned on.
13668
13669         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
13670         Improvement in error message for object.
13671         (Rep_Item_Too_Late): Remove '!' in warning message.
13672
13673 2006-02-13  Robert Dewar  <dewar@adacore.com>
13674             Eric Botcazou  <ebotcazou@adacore.com>
13675
13676         * err_vars.ads: Suppress range checks for a couple of assignments
13677         which otherwise cause validity checks with validity checking turned on.
13678         Update comments.
13679
13680         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
13681         Make message unconditional if it is a warning.
13682         (Error_Msg_NEL): Always output warning messages.
13683         Suppress range checks for a couple of assignments which otherwise
13684         cause validity checks with validity checking turned on.
13685
13686         * errout.ads (Message Insertion Characters): Document that '!' is
13687         implied by '?' in error messages.
13688
13689         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
13690         (Gnat1drv): Use a goto to end of main subprogram instead of
13691         Exit_Program (E_Success) so that finalization can occur normally.
13692
13693 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
13694
13695         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
13696         wrapped around.
13697
13698 2006-02-13  Vincent Celier  <celier@adacore.com>
13699
13700         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
13701         Unchecked_Conversion functions.
13702         (Modification_Time): Use direct conversion of OS_Time to Calendar time
13703         when OpenVMS returns False.
13704
13705         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
13706         a-dirval.adb (OpenVMS): New Boolean function
13707
13708 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13709             Thomas Quinot  <quinot@adacore.com>
13710
13711         * checks.adb (Build_Discriminant_Checks): If the expression being
13712         checks is an aggregate retrieve the values of its discriminants to
13713         generate the check, rather than creating a temporary and a reference
13714         to it.
13715         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
13716         (Install_Null_Excluding_Check): Ditto
13717         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
13718         not for the renamed object, so that the actual itype is attached in the
13719         proper context.
13720
13721 2006-02-13  Robert Dewar  <dewar@adacore.com>
13722             Vincent Celier  <celier@adacore.com>
13723
13724         * debug.adb: Eliminate numeric switches for binder/gnatmake
13725
13726         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
13727         switches for the compiler.
13728         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
13729         (Scan_Make_Switches): When failing with an illegal switch, output an
13730         error message with the full switch.
13731         Eliminate numeric switches for binder/gnatmake
13732
13733         * switch.ads, switch.adb (Bad_Switch): New procedure
13734
13735         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
13736         Remove 0-9 as debug flag character possibilities
13737         -d is now controlling the primary stack size when its value is a
13738         positive. Also add checks against invalid values, and support for kb,
13739         mb. Ditto for -D switch.
13740
13741 2006-02-13  Robert Dewar  <dewar@adacore.com>
13742             Serguei Rybin  <rybin@adacore.com>
13743
13744         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
13745         save/restore routines.
13746         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
13747         were not always properly handled previously.
13748         Since we are changing the tree format anyway, also get rid of the
13749         junk obsolete Immediate_Errors flag.
13750         (Tree_Read): Change the way of reading Tree_Version_String - now we
13751         read the version string from the tree even if its length is not the
13752         same as the length of the version string computed from Gnatvsn.
13753         (Search_Directory_Present): New Boolean flag for the compiler.
13754         Define Tree_Version_String as a dynamic string.
13755         (Default_Stack_Size): new variable, used to handle switch -d.
13756
13757         * par-prag.adb: 
13758         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
13759         only for main unit.
13760         Add pragma Ada_2005 (synonym for Ada_05)
13761         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
13762         were not always properly handled previously.
13763
13764         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
13765         explicit Ada_95 to Ada_2005.
13766
13767 2006-02-13  Javier Miranda  <miranda@adacore.com>
13768             Robert Dewar  <dewar@adacore.com>
13769             Ed Schonberg  <schonberg@adacore.com>
13770
13771         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
13772         against errors in the source program: a private types for which the
13773         corresponding full type declaration is missing and pragma CPP_Virtual
13774         is used.
13775         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
13776         (Is_Known_Null): New flag
13777         (Has_Pragma_Pure): New flag
13778         (No_Return): Present in all entities, set only for procedures
13779         (Is_Limited_Type): A type whose ancestor is an interface is limited if
13780         explicitly declared limited.
13781         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
13782         entities. Only used for component marked Is_Tag. If present it stores
13783         the Offset_To_Top function used to provide this value in tagged types
13784         whose ancestor has discriminants.
13785
13786         * exp_ch2.adb: Update status of new Is_Known_Null flag
13787
13788         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
13789
13790         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
13791         the categorization sense if Is_Pure was set by pragma Pure_Function.
13792
13793 2006-02-13  Quentin Ochem  <ochem@adacore.com>
13794             Olivier Hainque  <hainque@adacore.com>
13795
13796         * bindusg.adb: Updated documentation for -d and -D switches.
13797
13798         * raise.h (__gnat_set_globals): added new parameter for
13799         Default_Stack_Size.
13800
13801         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
13802         (__gnat_handle_vms_condition): Adjust context before raise.
13803         (__gnat_install_handler): Restore the global vector setup for GCC
13804         versions before 3.4, as the frame based circtuitry is not available
13805         in this case.
13806         (__gnat_set_globals): added a parameter default_stack_size
13807         (__gl_default_stack_size): new variable.
13808
13809 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13810
13811         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
13812         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
13813         does not exist in the Ada RM.
13814         (Compatible_Int_Bounds): Determine whether two integer range bounds
13815         are of equal length and have the same start and end values.
13816         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
13817         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
13818         aggregate when it is part of an object declaration.
13819         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
13820         constrains discriminants of its parent, add explicitly the discriminant
13821         constraints of the ancestor by retrieving them from the
13822         stored_constraint of the parent.
13823
13824 2006-02-13  Robert Dewar  <dewar@adacore.com>
13825
13826         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
13827         attribute Mechanism_Code is applied to renamed subprogram, modify
13828         prefix to point to base subprogram.
13829         Max/Min attributes now violate Restriction No_Implicit_Conditionals
13830
13831         * sinfo.ads: Document that Mechanism_Code cannot be applied to
13832         renamed subprograms so that the front-end must replace the prefix
13833         appropriately.
13834
13835 2006-02-13  Javier Miranda  <miranda@adacore.com>
13836             Gary Dismukes  <dismukes@adacore.com>
13837
13838         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
13839         availability of RE_Interface_Tag.
13840         (Build_Initialization_Call): Fix wrong access to the discriminant value.
13841         (Freeze_Record_Type): Do not generate the tables associated with
13842         timed and conditional dispatching calls through synchronized
13843         interfaces if compiling under No_Dispatching_Calls restriction.
13844         When compiling for Ada 2005, for a nonabstract
13845         type with a null extension, call Make_Controlling_Function_Wrappers
13846         and insert the wrapper function declarations and bodies (the latter
13847         being appended as freeze actions).
13848         (Predefined_Primitive_Bodies): Do not generate the bodies of the
13849         predefined primitives associated with timed and conditional
13850         dispatching calls through synchronized interfaces if we are
13851         compiling under No_Dispatching_Calls.
13852         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
13853         service is available before generating a call.
13854         (Make_Controlling_Function_Wrappers): New procedure.
13855         (Expand_N_Full_Type_Declaration): Create a class-wide master for
13856         access-to-limited-interfaces because they can be used to reference
13857         tasks that implement such limited interface.
13858         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
13859         procedure spec and body of the Offset_To_Top function that is generated
13860         when the parent of a type with discriminants has secondary dispatch
13861         tables.
13862         (Init_Secondary_Tags): Handle the case in which the parent of the type
13863         containing secondary dispatch tables has discriminants to generate the
13864         correct arguments to call Set_Offset_To_Top.
13865         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
13866
13867         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
13868         Add Wide_[Wide_]Expanded_Name.
13869         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
13870         the same functionality of Get_Prim_Op_Address but applied to predefined
13871         primitive operations because the pointers to the predefined primitives
13872         are now saved in a separate table.
13873         (Parent_Size): Modified to get access to the separate table of primitive
13874         operations or the parent type.
13875         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
13876         functionality of Set_Prim_Op_Address but applied to predefined primitive
13877         operations.
13878         (Set_Signature): New subprogram used to store the signature of a DT.
13879         (Displace): If the Offset_To_Top value is not static then call the
13880         function generated by the expander to get such value; otherwise use
13881         the value stored in the table of interfaces.
13882         (Offset_To_Top): The type of the actual has been changed to Address to
13883         give the correct support to tagged types with discriminants. In this
13884         case this value is stored just immediately after the tag field.
13885         (Set_Offset_To_Top): Two new formals have been added to indicate if the
13886         offset_to_top value is static and hence pass this value to the run-time
13887         to store it in the table of interfaces, or else if this value is dynamic
13888         and then pass to the run-time the address of a function that is
13889         generated by the expander to provide this value for each object of the
13890         type.
13891
13892         * rtsfind.ads (Default_Prin_Op_Count): Removed.
13893         (Default_Prim_Op_Count): New entity
13894         (Get_Predefined_Prim_Op_Address): New entity
13895         (Set_Predefined_Prim_Op_Address): New entity
13896         (RE_Set_Signature): New entity
13897
13898 2006-02-13  Thomas Quinot  <quinot@adacore.com>
13899             Ed Schonberg  <schonberg@adacore.com>
13900
13901         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
13902         Make_Adjust_Call done for a newly-allocated object.
13903
13904         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
13905         in a subprogram are wrapped in a cleanup block, indicate that the
13906         subprogram contains an inner block with an exception handler.
13907         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
13908         Adjust call is for a newly-allocated object. In that case we must not
13909         assume that the finalization list chain pointers are correct (since they
13910         come from a bit-for-bit copy of the original object's pointers) so if
13911         the attach level would otherwise be zero (no change), we set it to 4
13912         instead to cause the pointers to be reset to null.
13913
13914         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
13915         reset chain pointers to null.
13916
13917 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13918
13919         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
13920         string, and the context requires a loop for the assignment (e.g.
13921         because the left-hand side is packed), generate a unique name for the
13922         temporary that holds the string, to prevent spurious name clashes.
13923
13924 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13925             Javier Miranda  <miranda@adacore.com>
13926             Robert Dewar  <dewar@adacore.com>
13927             Gary Dismukes  <dismukes@adacore.com>
13928
13929         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
13930         return unconstrained arrays.
13931         Update comments.
13932         (Expand_Call):  An indirect call through an access parameter of a
13933         protected operation is not a protected call.
13934         Add circuit to raise CE in Ada 2005 mode following call
13935         to Raise_Exception.
13936         (Register_DT_Entry): Do nothing if
13937         the run-time does not give support to abstract interfaces.
13938         (Freeze_Subprogram): In case of dispatching operations, do not generate
13939         code to register the operation in the dispatch table if the source
13940         is compiled with No_Dispatching_Calls.
13941         (Register_Predefined_DT_Entry): Generate code that calls the new
13942         run-time subprogram Set_Predefined_Prim_Op_Address instead of
13943         Set_Prim_Op_Address.
13944
13945         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
13946         on array assignments if the right-hand side is a function call that has
13947         been inlined. Check is performed on the assignment in the block.
13948         (Process_Bounds): If bounds and range are overloaded, apply preference
13949         rule for root operations to disambiguate, and diagnose true ambiguity.
13950         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
13951         a tag-indeterminate right-hand side even when Expander_Active is True.
13952         Needed to ensure that dispatching calls to T'Input are allowed and
13953         get the tag of the target class-wide object.
13954
13955         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
13956         an inherited primitive operation that already overrides several
13957         abstract interface primitives. For transitivity, the new entity must
13958         also override all the abstract interface primitives covered by the
13959         inherited overriden primitive.
13960         Emit warning if new entity differs from homograph in same scope only in
13961         that one has an access parameter and the other one has a parameter of
13962         a general access type with the same designated type, at the same
13963         position in the signature.
13964         (Make_Inequality_Operator): Use source locations of parameters and
13965         subtype marks from corresponding equality operator when creating the
13966         tree structure for the implicit declaration of "/=". This does not
13967         change anything in behaviour except that the decoration of the
13968         components of the subtree created for "/=" allows ASIS to get the
13969         string images of the corresponding identifiers.
13970         (Analyze_Return_Statement): Remove '!' in warning message.
13971         (Check_Statement_Sequence): Likewise.
13972         (Analyze_Subprogram_Body): For an access parameter whose designated type
13973         is an incomplete type imported through a limited_with clause, use the
13974         type of the corresponding formal in the body.
13975         (Check_Returns): Implicit return in No_Return procedure now raises
13976         Program_Error with a compile time warning, instead of beging illegal.
13977         (Has_Single_Return):  Function returning unconstrained type cannot be
13978         inlined if expression in unique return statement is not an identifier.
13979         (Build_Body_To_Inline): It is possible to inline a function call that
13980         returns an unconstrained type if all return statements in the function
13981         return the same local variable. Subsidiary procedure Has_Single_Return
13982         verifies that the body conforms to this restriction.
13983
13984         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
13985         same type, and  one of them is of an anonymous access type, convert
13986         the other operand to it, so that this is a valid binary operation for
13987         gigi.
13988         (Resolve_Type_Conversion): Handle subtypes of protected types and
13989         task types when accessing to the corresponding record type.
13990         (Resolve_Allocator): Add '\' in 2-line warning message.
13991         Remove '!' in warning message.
13992         (Resolve_Call): Add '\' in 2-line warning message.
13993         (Valid_Conversion): Likewise.
13994         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
13995         resulting type may be an access type with an implicit dereference.
13996         Obtain the proper component from the designated type.
13997         (Make_Call_Into_Operator): Handle properly a call to predefined equality
13998         given by an expanded name with prefix Standard, when the operands are
13999         of an anonymous access type.
14000         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
14001         Explicit_Dereference and Resolve_Selected_Component, to verify that the
14002         prefix of the expression is not of an incomplete type. Allows full
14003         diagnoses of all semantic errors.
14004         (Resolve_Actuals): If the actual is an allocator whose directly
14005         designated type is a class-wide interface we build an anonymous
14006         access type to use it as the type of the allocator. Later, when
14007         the subprogram call is expanded, if the interface has a secondary
14008         dispatch table the expander will add a type conversion to force
14009         the displacement of the pointer.
14010         (Resolve_Call): If a function that returns an unconstrained type is
14011         marked Inlined_Always and inlined, the call will be inlined and does
14012         not require the creation of a transient scope.
14013         (Check_Direct_Boolean_Op): Removed
14014         (Resolve_Comparison_Op): Remove call to above
14015         (Resolve_Equality_Op): Remove call to above
14016         (Resolve_Logical_Op): Inline above, since this is only call.
14017         (Valid_Conversion): Handle properly conversions between arrays of
14018         convertible anonymous access types.
14019
14020         PR ada/25885
14021         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
14022         the literal in an unchecked conversion, because GCC 4.x needs a static
14023         value for a string bound.
14024
14025 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14026             Hristian Kirtchev  <kirtchev@adacore.com>
14027
14028         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
14029         components of the corresponding record, take into account component
14030         definitions that are access definitions.
14031         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
14032         procedure is not considered a dispatching call and will be expanded
14033         properly.
14034
14035 2006-02-13  Javier Miranda  <miranda@adacore.com>
14036
14037         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
14038         controlling argument of the dispatching call is an abstract interface
14039         class-wide type then we use it directly.
14040         Check No_Dispatching_Calls restriction.
14041         (Default_Prim_Op_Position): Remove the code that looks for the last
14042         entity in the list of aliased subprograms. This code was wrong in
14043         case of renamings.
14044         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
14045         when the source is compiled with the No_Dispatching_Calls restriction.
14046         (Init_Predefined_Interface_Primitives): No need to inherit primitives
14047         if we are compiling with restriction No_Dispatching_Calls.
14048         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
14049         subprograms if we are compiling under No_Dispatching_Calls restriction.
14050         (Make_DT): Generate a dispatch table with a single dummy entry if
14051         we are compiling with the No_Dispatching_Calls restriction. In
14052         addition, in this case we don't generate code that calls to the
14053         following run-time subprograms: Set_Type_Kind, Inherit_DT.
14054         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
14055         of this subprogram if compiling with the No_Dispatching_Calls
14056         restriction.
14057         (Expand_Type_Conversion): Instead of using the actual parameter,
14058         the argument passed as parameter to the conversion function was
14059         erroneously referenced by the expander.
14060         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
14061         Set_Predefined_Primitive_Op_Address and Set_Signature.
14062         (Expand_Dispatching_Call): Generate call to
14063         Get_Predefined_Prim_Op_Address for predefined primitives.
14064         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
14065         predefined primitives.
14066         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
14067         primitives we reserve one dummy entry to ensure that the tag does not
14068         point to some memory that is associated with some other object. In
14069         addition, remove all the old code that generated the assignments
14070         associated with the signature of the dispatch table and replace them
14071         by a call to the new subprogram Set_Signature.
14072         (Set_All_DT_Position): Change the algorithm because now we have a
14073         separate dispatch table associated with predefined primitive operations.
14074         (Expand_Interface_Conversion): In case of non-static offset_to_top
14075         add explicit dereference to get access to the object after the call
14076         to displace the pointer to the object.
14077         (Expand_Interface_Thunk): Modify the generation of the actual used
14078         in the calls to the run-time function Offset_To_Top to fulfil its
14079         new interface.
14080         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
14081
14082 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14083
14084         * exp_dist.adb (Copy_Specification): For access parameters, copy
14085         Null_Exclusion flag, which will have been set for stream subprograms
14086         in Ada2005 mode.
14087
14088 2006-02-13  Pascal Obry  <obry@adacore.com>
14089
14090         * expect.c (__gnat_expect_portable_execvp): New implementation. The
14091         previous implementation was using the C runtime spawnve routine but
14092         the corresponding wait was using directly the Win32 API. This was
14093         causing some times a lock when waiting for an event using
14094         WaitForSingleObject in __gnat_waitpid. This new implementation uses
14095         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
14096         API fixes this problem.
14097
14098 2006-02-13  Robert Dewar  <dewar@adacore.com>
14099
14100         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
14101         call.
14102
14103 2006-02-13  Thomas Quinot  <quinot@adacore.com>
14104
14105         * exp_pakd.ads: Fix typos in comments.
14106
14107         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
14108         array reference that is an explicit dereference, mark the converted
14109         (packed) array reference as analyzed to prevent a forthcoming
14110         reanalysis from resetting its type to the original (non-packed) array
14111         type.
14112
14113 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14114             Javier Miranda  <miranda@adacore.com>
14115             Eric Botcazou  <ebotcazou@adacore.com>
14116
14117         * exp_util.ads, exp_util.adb (Find_Prim_Op,
14118         Is_Predefined_Primitive_Operation): When
14119         searching for the predefined equality operator, verify that operands
14120         have the same type.
14121         (Is_Predefined_Dispatching_Operation): Remove the code that looks
14122         for the last entity in the list of aliased subprograms. This code
14123         was wrong in case of renamings.
14124         (Set_Renamed_Subprogram): New procedure
14125         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
14126         Exp_Type constant computed when entering this subprogram.
14127         (Known_Null): New function
14128         (OK_To_Do_Constant_Replacement): New function
14129         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
14130         (Side_Effect_Free): An attribute reference 'Input is not free of
14131         side effect, unlike other attributes that are functions. (from code
14132         reading).
14133         (Remove_Side_Effects): Expressions that involve packed arrays or records
14134         are copied at the point of reference, and therefore must be marked as
14135         renamings of objects.
14136         (Is_Predefined_Dispatching_Operation): Return false if the operation is
14137         not a dispatching operation.
14138
14139         PR ada/18819
14140         (Remove_Side_Effects): Lift enclosing type conversion nodes for
14141         elementary types in all cases.
14142
14143 2006-02-13  Javier Miranda  <miranda@adacore.com>
14144
14145         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
14146         task types when accessing to the corresponding record type.
14147         Remove '!' in warning message.
14148
14149 2006-02-13  Olivier Hainque  <hainque@adacore.com>
14150
14151         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
14152         to avoid useless and space inefficient overalignments on targets where
14153         Max_Alignment is larger than 16.
14154
14155 2006-02-13  Pascal Obry  <obry@adacore.com>
14156
14157         * g-catiio.adb (Sec_Number): New type used to compute the number of
14158         seconds since 1-1-1970.
14159         (Image) [Natural]: The parameter was an Integer, as we can't deal with
14160         negative numbers (years, months...) it is better to have a Natural here.
14161         Code clean-up.
14162         (Image) [Number]: Change parameter from Long_Integer to Number.
14163         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
14164         overflow for dates past year 2038.
14165
14166 2006-02-13  Matthew Heaney  <heaney@adacore.com>
14167
14168         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
14169         Constraint_Error.
14170
14171 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
14172
14173         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
14174         native platforms.
14175         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
14176         finalization can occur normally.
14177
14178 2006-02-13  Vincent Celier  <celier@adacore.com>
14179
14180         * gnatcmd.adb (Rules_Switches): New table
14181         (Add_To_Rules_Switches): New procedure
14182         (GNATCmd): For command CHECK, put all options following "-rules" in the
14183         Rules_Switches table. Append these -rules switches after the -cargs
14184         switches.
14185
14186 2006-02-13  Robert Dewar  <dewar@adacore.com>
14187
14188         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
14189         These two cases were generating incorrect output, and if this unit
14190         was built with checks on, generated a discriminant mismatch constraint
14191         error.
14192
14193 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14194             Robert Dewar  <dewar@adacore.com>
14195
14196         * lib-xref.adb (Get_Type_Reference): For a private type whose full
14197         view is an array type, indicate the component type as well, for
14198         navigation purposes.
14199         (Generate_Reference): Don't consider array ref on LHS to be a case
14200         of violating pragma Unreferenced.
14201         Do not give Ada 2005 warning except on real reference.
14202
14203 2006-02-13  Vincent Celier  <celier@adacore.com>
14204
14205         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
14206         main source, add switch -mdebug-main=_ada_ so that the executable can
14207         be debugged by the standard VMS debugger.
14208         (Gnatmake): Set No_Main_Subprogram to True when there is no main
14209         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
14210         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
14211         of the last source, as the binding and linking phases are never
14212         performed.
14213         Set all executable obsolete when rebuilding a library.
14214
14215         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
14216         options.
14217
14218 2006-02-13  Javier Miranda  <miranda@adacore.com>
14219
14220         PR ada/23973
14221         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
14222         code to improve the error message reported when the program has
14223         declarations of abstract interface types and it is not compiled with
14224         the -gnat05 switch.
14225         (P_Access_Definition): Reorganize the code to improve the error
14226         message reported when the new Ada 2005 syntax for anonymous
14227         access types is used and the program is not compiled with the
14228         -gnat05 switch.
14229
14230 2006-02-13  Robert Dewar  <dewar@adacore.com>
14231
14232         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
14233         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
14234         (MODE_IN)
14235
14236 2006-02-13  Javier Miranda  <miranda@adacore.com>
14237
14238         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
14239         against source containing syntax errors.
14240
14241 2006-02-13  Vincent Celier  <celier@adacore.com>
14242
14243         * prj.adb (Reset): Initialize the first element of table Namings with
14244         the standard naming data.
14245
14246 2006-02-13  Vincent Celier  <celier@adacore.com>
14247
14248         * prj.ads (Error_Warning): New enumeration type
14249
14250         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
14251         unknown, use the location of the project to report the error.
14252         (When_No_Sources): New global variable
14253         (Report_No_Ada_Sources): New procedure
14254         (Check): New parameter When_No_Sources. Set value of global variable
14255         When_No_Sources,
14256         (Find_Sources): Call Report_No_Ada_Sources when appropriate
14257         (Get_Sources_From_File): Ditto
14258         (Warn_If_Not_Sources): Better warning messages indicating the unit name
14259         and the file name.
14260
14261         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
14262         Call Prj.Proc.Process with parameter When_No_Sources.
14263
14264         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
14265         Call Recursive_Check with parameter When_No_Sources.
14266         (Recursive_Check): New parameter When_No_Sources. Call itself and
14267         Prj.Nmsc.Check with parameter When_No_Sources.
14268         (Process): New parameter When_No_Sources. Call Check with parameter
14269         When_No_Sources.
14270         (Copy_Package_Declarations): New procedure to copy renamed parameters
14271         and setting the location of the declared attributes to the location
14272         of the renamed package.
14273         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
14274         packages.
14275
14276 2006-02-13  Vincent Celier  <celier@adacore.com>
14277
14278         * prj-makr.adb (Make): Preserve the comments from the original project
14279         file.
14280         When removing nodes (attributes Source_Dirs, Source_Files,
14281         Source_List_File and package Naming), save the comments and attach the
14282         saved comments to the newly created nodes.
14283         Do not add a with clause for the naming package if one already exists.
14284
14285 2006-02-13  Javier Miranda  <miranda@adacore.com>
14286             Gary Dismukes  <dismukes@adacore.com>
14287             Robert Dewar  <dewar@adacore.com>
14288
14289         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
14290
14291         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
14292         aliased entities to look for the overriden abstract interface
14293         subprogram.
14294         (Is_Interface_Subprogram): Complete documentation.
14295         (Check_Dispatching_Operation): Do not generate code to register the
14296         operation in the dispatch table if the source is compiled with
14297         restriction No_Dispatching_Calls.
14298         (Override_Dispatching_Operation): Check for illegal attempt to override
14299         No_Return procedure with procedure that is not No_Return
14300         (Check_Dispatching_Call): Suppress the check for an abstract operation
14301         when the original node of an actual is a tag-indeterminate attribute
14302         call, since the attribute, which must be 'Input, can never be abstract.
14303         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
14304         call to the Input attribute (even when rewritten).
14305         (Propagate_Tag): Augment comment to indicate the possibility of a call
14306         to an Input attribute.
14307
14308         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
14309         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
14310
14311         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
14312         No_Wide_Characters is no longer partition-wide
14313         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
14314         rather than GNAT
14315
14316 2006-02-13  Douglas Rupp  <rupp@adacore.com>
14317
14318         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
14319
14320 2006-02-13  Javier Miranda  <miranda@adacore.com>
14321
14322         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
14323         handles default-initialized components to keep separate the management
14324         of this feature but also avoid the unrequired resolution and
14325         expansion of components that do not have partially initialized
14326         values.
14327         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
14328         (Check_Bounds): Likewise.
14329         (Check_Length): Likewise.
14330
14331 2006-02-13  Javier Miranda  <miranda@adacore.com>
14332             Ed Schonberg  <schonberg@adacore.com>
14333
14334         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
14335         abstract interface type call analyze_and_resolve to expand the type
14336         conversion into the corresponding displacement of the
14337         reference to the base of the object.
14338         (Eval_Attribute, case Width): For systems where IEEE extended precision
14339         is supported, the maximum exponent occupies 4 decimal digits.
14340         (Accessibility_Message): Add '\' in 2-line warning message.
14341         (Resolve_Attribute): Likewise.
14342         (case Attribute_Access): Significantly revise checks
14343         for illegal access-to-subprogram Access attributes to properly enforce
14344         the rules of 3.10.2(32/2).
14345         Diagnose use of current instance with an illegal attribute.
14346
14347         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
14348         to a Node_Id.
14349         (Enclosing_Generic_Unit): New function to return a node's innermost
14350         enclosing generic declaration node.
14351         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
14352         (Type_Access_Level): The accessibility level of anonymous acccess types
14353         associated with discriminants is that of the current instance of the
14354         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
14355         (Compile_Time_Constraint_Error): Handle case of conditional expression.
14356         (Kill_Current_Values_For_Entity): New function
14357         (Enter_Name): Change formal type to Entity_Id
14358
14359 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
14360             Ed Schonberg  <schonberg@adacore.com>
14361             Gary Dismukes  <dismukes@adacore.com>
14362
14363         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
14364         Analyze_Compilation_Unit.
14365         Detect and warn on redundant with clauses detected in a package spec
14366         and/or body when -gnatwr is used.
14367         (Analyze_Context): Analyze config pragmas before other items
14368         (Install_Context_Items): Don't analyze config pragmas here
14369         (Install_Limited_Withed_Unit): Set limited entity of package in
14370         with_clause so that cross-reference information or warning messages on
14371         unused packages can be properly generated
14372         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
14373         has Error_Posted set. Prevent infinite loops in illegal programs.
14374         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
14375         to the point of the error test requiring the current unit to be private.
14376         This ensures that private with clauses are not exempted from the basic
14377         checking for being a descendant of the same library unit parent as a
14378         withed private descendant unit.
14379         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
14380         handle private with clauses properly, as well as to account for cases
14381         where the withed unit is a public descendant of a private ancestor
14382         (in which case the current unit must be a descendant of the private
14383         ancestor's parent). The spec comments were updated accordingly. Also,
14384         the old error message in this subprogram was replaced with error
14385         messages that mirror the errors tested and reported by
14386         Check_Private_Child_Unit.
14387         Parameter and variable names improved for readability.
14388         (Install_Limited_Context_Clauses): Remove test for a withed unit being
14389         private as the precondition for calling
14390         Check_Private_Limited_Withed_Unit since that subprogram has been
14391         revised to test public units as well as private units.
14392
14393 2006-02-13  Thomas Quinot  <quinot@adacore.com>
14394             Robert Dewar  <dewar@adacore.com>
14395             Ed Schonberg  <schonberg@adacore.com>
14396             Javier Miranda  <miranda@adacore.com>
14397
14398         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
14399         that Scope_Stack.First = 1.
14400         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
14401         were not always properly handled previously.
14402         (Formal_Entity): Complete rewrite, to handle properly some complex case
14403         with multiple levels of parametrization by formal packages.
14404         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
14405         to the corresponding derived type declaration for proper semantics.
14406
14407         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
14408         (Check_Component): Enforce restriction on components of
14409         unchecked_unions: a component in a variant cannot contain tasks or
14410         controlled types.
14411         (Unchecked_Union): Allow nested variants and multiple discriminants, to
14412         conform to AI-216.
14413         Add pragma Ada_2005 (synonym for Ada_05)
14414         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
14415         were not always properly handled previously.
14416         Document that pragma Propagate_Exceptions has no effect
14417         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
14418         (Set_Convention_From_Pragma): Check that if a convention is
14419         specified for a dispatching operation, then it must be
14420         consistent with the existing convention for the operation.
14421         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
14422         longer required to specify an vtable-ptr component in the record. For
14423         compatibility reasons we leave the support for the previous definition.
14424         (Analyze_Pragma, case No_Return): Allow multiple arguments
14425
14426         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
14427         non-overrideen inherited operation with a controlling result as
14428         illegal only its implicit declaration comes from the derived type
14429         declaration of its result's type.
14430         (Check_Possible_Deferred_Completion): Relocate the object definition
14431         node of the subtype indication of a deferred constant completion rather
14432         than directly analyzing it. The analysis of the generated subtype will
14433         correctly decorate the GNAT tree.
14434         (Record_Type_Declaration): Check whether this is a declaration for a
14435         limited derived record before analyzing components.
14436         (Analyze_Component_Declaration): Diagnose record types  not explicitly
14437         declared limited when a component has a limited type.
14438         (Build_Derived_Record_Type): Code reorganization to check if some of
14439         the inherited subprograms of a tagged type cover interface primitives.
14440         This check was missing in case of a full-type associated with a private
14441         type declaration.
14442         (Constant_Redeclaration): Check that the subtypes of the partial and the
14443         full view of a constrained deferred constant statically match.
14444         (Mentions_T): A reference to the current type in an anonymous access
14445         component declaration  must be an entity name.
14446         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
14447         class_wide type to refer to full type, not to the incomplete one.
14448         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
14449         available. Required to give support to the certified run-time.
14450         (Analyze_Component_Declaration): In case of anonymous access components
14451         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
14452         (Process_Discriminants): For an access discriminant, use the
14453         discriminant specification as the associated_node_for_itype, to
14454         simplify accessibility checks.
14455
14456 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14457             Javier Miranda  <miranda@adacore.com>
14458
14459         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
14460         abstract interpretations on an operator, remove interpretations that
14461         yield Address or a type derived from it, if one of the operands is an
14462         integer literal.
14463         (Try_Object_Operation.Try_Primitive_Operation,
14464         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
14465         location when creating the new reference to a primitive or class-wide
14466         operation as a part of rewriting a subprogram call.
14467         (Try_Primitive_Operations): If context requires a function, collect all
14468         interpretations after the first match, because there may be primitive
14469         operations of the same type with the same profile and different return
14470         types. From code reading.
14471         (Try_Primitive_Operation): Use the node kind to choose the proper
14472         operation when a function and a procedure have the same parameter
14473         profile.
14474         (Complete_Object_Operation): If formal is an access parameter and prefix
14475         is an object, rewrite as an Access reference, to match signature of
14476         primitive operation.
14477         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
14478         by an expanded name with prefix Standard, when the operands are of an
14479         anonymous access type.
14480         (Remove_Abstract_Operations): If the operation is abstract because it is
14481         inherited by a user-defined type derived from Address, remove it as
14482         well from the set of candidate interpretations of an overloaded node.
14483         (Analyze_Membership_Op): Membership test not applicable to cpp-class
14484         types.
14485
14486 2006-02-13  Bob Duff  <duff@adacore.com>
14487
14488         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
14489         redundant use clauses.
14490         In particular, if the scope of two use clauses overlaps, but one is not
14491         entirely included in the other, we should not warn.  This can happen
14492         with nested packages.
14493         (Analyze_Subprogram_Renaming): Protect the compiler against previously
14494         reported errors. The bug was reported when the compiler was built
14495         with assertions enabled.
14496         (Find_Type): If the node is a 'Class reference and the prefix is a
14497         synchronized type without a corresponding record, return the type
14498         itself.
14499
14500 2006-02-13  Javier Miranda  <miranda@adacore.com>
14501
14502         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
14503         if this is the full-declaration associated with a private declaration
14504         that implement interfaces, then the private type declaration must be
14505         limited.
14506         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
14507         as aliased. The use of the 'access attribute is not available for such
14508         object (for this purpose the object should be explicitly marked as
14509         aliased, but being an anonymous type this is not possible).
14510
14511 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14512             Robert Dewar  <dewar@adacore.com>
14513
14514         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
14515         compilation unit is an elaboration scope.
14516         (Add_Task_Proc): Add '\' in 2-line warning message.
14517         (Activate_All_Desirable): Deal with case of unit with'ed by parent
14518
14519 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14520             Javier Miranda  <miranda@adacore.com>
14521
14522         * sem_type.adb (Write_Overloads): Improve display of candidate
14523         interpretations.
14524         (Add_One_Interp): Do not add to the list of interpretations aliased
14525         entities corresponding with an abstract interface type that is an
14526         immediate ancestor of a tagged type; otherwise we have a dummy
14527         conflict between this entity and the aliased entity.
14528         (Disambiguate): The predefined equality on universal_access is not
14529         usable if there is a user-defined equality with the proper signature,
14530         declared in the same declarative part as the designated type.
14531         (Find_Unique_Type): The universal_access equality operator defined under
14532         AI-230 does not cover pool specific access types.
14533         (Covers): If one of the types is a generic actual subtype, check whether
14534         it matches the partial view of the other type.
14535
14536 2006-02-13  Thomas Quinot  <quinot@adacore.com>
14537
14538         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
14539         line. This is necessary to allow In_Extended_Main_Unit to provide
14540         correct results for itypes while writing out expanded source.
14541         (Close_File): No need to update the source_index_table here since it's
14542         now done for each line.
14543
14544 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
14545             Robert Dewar  <dewar@adacore.com>
14546
14547         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
14548         preserve the source unit where the itype is declared, and prevent a
14549         backend abort.
14550         (Note_Implicit_Run_Time_Call): New procedure
14551         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
14552         E_Subprogram_Type)
14553
14554         * sprint.ads: Document use of $ for implicit run time routine call
14555
14556 2006-02-13  Quentin Ochem  <ochem@adacore.com>
14557
14558         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
14559         task name.
14560
14561 2006-02-13  Bob Duff  <duff@adacore.com>
14562
14563         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
14564         Scan_Unsigned, so we do not scan leading blanks and sign twice.
14565         Integer'Value("- 5") and Integer'Value("-+5") now correctly
14566         raise Constraint_Error.
14567
14568         * s-vallli.adb (Scan_Long_Long_Integer): Call
14569         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
14570         do not scan leading blanks and sign twice.
14571         Integer'Value("- 5") and Integer'Value("-+5") now correctly
14572         raise Constraint_Error.
14573
14574         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
14575         Scan_Long_Long_Unsigned): Split out most of the processing from
14576         Scan_Long_Long_Unsigned out into
14577         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
14578         This prevents scanning leading blanks and sign twice.
14579         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
14580         See RM-3.5(44).
14581
14582         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
14583         out most of the processing from Scan_Unsigned out into
14584         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
14585         This prevents scanning leading blanks and sign twice.
14586
14587         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
14588         use with Modular'Value attribute.
14589         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
14590         attribute.
14591
14592 2006-02-13  Robert Dewar  <dewar@adacore.com>
14593
14594         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
14595
14596 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
14597
14598         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
14599         (PPC VxWorks): Likewise.
14600         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
14601         (forced_callee): Make non-inlinable and non-pure.
14602         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
14603
14604 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
14605             Ben Brosgol  <brosgol@adacore.com>
14606             Robert Dewar  <dewar@adacore.com>
14607
14608         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
14609         support.
14610         Document that gnatbind -M option is for cross environments only.
14611         Added description of using gnatmem to trace gnat rtl allocs and deallocs
14612         Add note on use of $ to label implicit run time calls
14613         Add documentation for -gnatyI (check mode IN)
14614         Updated chapter on compatibility with HP Ada
14615         VMS-oriented edits.
14616         Ran spell and corrected errors
14617         Add documentation for gnatbind -d and rework documentation of -D
14618         at the same time.
14619         Add subprogram/data elimination section.
14620         Minor editing of annex A.
14621         Add section for gnatcheck.
14622         Add documentation for restriction No_Dispatching_Calls
14623         Add documentation for pragma Ada_2005
14624         Remove mention of obsolete pragma Propagate_Exceptions
14625         Document that pragma Unreferenced can appear after DO in ACCEPT
14626         Clarify Pure_Function for library level units
14627         Mention Max/Min in connection with No_Implicit_Conditionals
14628         No_Wide_Characters restriction is no longer partition-wide
14629         Add a nice example for Universal_Literal_String attribute
14630         Document that pragma No_Return can take multiple arguments
14631
14632         * ug_words: Added entry for gnatcheck
14633
14634         * g-ctrl_c.ads (Install_Handler): Enhance comments
14635
14636         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
14637
14638         * g-trasym.ads: Add documentation on how to do off line symbolic
14639         traceback computation.
14640
14641         * s-fatgen.adb: Add comments for Unaligned_Valid
14642
14643         * stand.ads: Fix typo in comment
14644
14645 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14646
14647         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
14648
14649 2006-02-06  Roger Sayle  <roger@eyesopen.com>
14650
14651         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
14652
14653 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14654
14655         PR target/25926
14656         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
14657         implementation that calls __main.
14658
14659 2006-01-25  Peter O'Gorman  <peter@pogma.com>
14660
14661         PR bootstrap/25859
14662         * Makefile.in (GCC_LINK): Remove quotes.
14663         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
14664         or $(GCC_LINK).
14665
14666         (powerpc-darwin): Pass -shared-libgcc when building shared library.
14667
14668 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14669
14670         PR ada/24533
14671         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
14672
14673 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14674
14675         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
14676
14677 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
14678
14679         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
14680         needed.
14681
14682 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
14683
14684         * Make-lang.in: Update dependencies
14685
14686 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
14687
14688         * Make-lang.in: Add rule for ada/exp_sel.o
14689
14690 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
14691
14692         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
14693
14694 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
14695
14696         * gnatvsn.ads (Library_Version): Bump to version 4.2
14697         (ASIS_Version_Number): Bumped.
14698
14699 2005-12-09  Doug Rupp  <rupp@adacore.com>
14700
14701         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
14702         Ada bind file prefix on VMS from b$ to b__.
14703         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
14704         __init.
14705
14706         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
14707         Targparm.OpenVMS_On_Target.
14708         (Object_Suffix): Initialize with target object suffix.
14709         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
14710
14711         * butil.adb: Change some Hostparm.OpenVMS checks to
14712         Targparm.OpenVMS_On_Target.
14713
14714         * clean.adb: Change some Hostparm.OpenVMS checks to
14715         Targparm.OpenVMS_On_Target.
14716         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
14717         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
14718         Ada bind file prefix on VMS from b$ to b__.
14719
14720         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
14721         --GCC so that Get_Target_Parameters can find system.ads.
14722         (Gnatlink): Call Get_Target_Parameters in mainline.
14723         Initialize standard packages for Targparm.
14724         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
14725         (Process_Args): Also Check for object files with target object
14726         extension.
14727         (Make_Binder_File_Names): Create with target object extension.
14728         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
14729         to b__.
14730
14731         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
14732         Targparm.OpenVMS_On_Target.
14733         ({declaration},Build_Library,Check_Library): Change Ada bind file
14734         prefix on VMS from b$ to b__.
14735
14736         * osint-b.adb: Change some Hostparm.OpenVMS checks to
14737         Targparm.OpenVMS_On_Target.
14738         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
14739         b__.
14740
14741         * targext.c: New file.
14742
14743         * Makefile.in: add support for vxworks653 builds
14744         (../../vxaddr2line): gnatlink with targext.o.
14745         (TOOLS_LIBS): Move targext.o to precede libgnat.
14746         (init.o, initialize.o): Minor clean up in dependencies.
14747         (GNATLINK_OBJS): Add targparm.o, snames.o
14748         Add rules fo building targext.o and linking it explicitly with all
14749         tools.
14750         Also add targext.o to gnatlib.
14751
14752         * Make-lang.in: Add rules for building targext.o and linking it in
14753         with gnat1 and gnatbind.
14754         Add entry for exp_sel.o.
14755
14756         * osint.adb Change some Hostparm.OpenVMS checks to
14757         Targparm.OpenVMS_On_Target.
14758         (Object_File_Name): Use target object suffix.
14759
14760         * osint.ads (Object_Suffix): Remove, no longer used.
14761         (Target_Object_Suffix): Initialize with target object suffix.
14762
14763         * rident.ads: Add special exception to license.
14764
14765         * targparm.adb (Get_Target_Parameters): Set the value of
14766         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
14767         value.
14768         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
14769         
14770         * targparm.ads: Add special exception to license.
14771
14772         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
14773         function.
14774         (Copy_File): Make sure from file is closed if error on to file
14775         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
14776
14777         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
14778         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
14779
14780         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
14781         target object suffix.
14782
14783 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
14784             Quentin Ochem  <ochem@adacore.com>
14785             Florian Villoing  <villoing@adacore.com>
14786
14787         * a-taster.ads, a-taster.adb: New files.
14788
14789         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
14790         link to the version that does nothing. This way the task termination
14791         routine is not executed twice for the environment task when finishing
14792         because of an unhandled exception.
14793
14794         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
14795         handler because of an unhandled exception.
14796
14797         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
14798         System.Tasking.Utilities instead of that in System.Tasking.Stages.
14799
14800         * s-finimp.adb (initialization code): Modify the soft link for the
14801         finalization of the global list instead of Adafinal.
14802
14803         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
14804         non-tasking version of the soft link for task termination. We do
14805         nothing since if we are using the non-tasking version it
14806         means that the task termination functionality is not used.
14807         (Null_Finalize_Global_List): Add this null version for the procedure
14808         in charge of finalizing the global list for controlled objects.
14809         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
14810         instead for handling run-time termination in a more flexible way.
14811         (Adafinal_NT): This new procedure will take care of finalizing the
14812         global list for controlled objects if needed, but no tasking
14813         finalization.
14814
14815         * s-tarest.adb (Task_Lock): Do not try to lock again the
14816         Global_Task_Lock if we already own it. Otherwise, we get blocked in
14817         some run-time operations.
14818         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
14819         until all nested locks have been released.
14820         (Task_Wrapper): Call the fall-back task termination handler. It
14821         applies to all tasks but the environment task.
14822         (Finalize_Global_Tasks): Add the call for the task termination
14823         procedure for the environment task.
14824         (Task_Wrapper): suppress warnings around declaration of
14825         Secondary_Stack_Address.
14826
14827         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
14828         moved to the Common_ATCB record.
14829         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
14830         Common_ATCB record.
14831         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
14832         Common_ATCB record.
14833
14834         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
14835         Fall_Back_Handler, and Specific_Handler.
14836
14837         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
14838         defined in Ada.Task_Termination, to avoid circular dependencies.
14839         (Termination_Handler): Redefine this type here, alredy defined in
14840         Ada.Task_Termination, for avoiding circular dependencies.
14841         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
14842         for storing task termination handlers. In addition,
14843         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
14844         Common_ATCB because it is used by both the regular and the restricted
14845         run times.
14846         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
14847         Common_ATCB because it is used by both the regular and the restricted
14848         run times.
14849         (Common_ATCB): Added a dynamic task analyzer field.
14850
14851         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
14852         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
14853         (Task_Wrapper): Call the task termination handler. It applies to all
14854         tasks but the environment task.
14855         (Finalize_Global_Tasks): Call the task termination procedure for the
14856         environment task. The call to Finalize_Global_List is now performed
14857         using the soft links mechanism.
14858         (Task_Wrapper): added dynamic stack analysis.
14859
14860         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
14861         potentially blocking operations has been moved from
14862         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
14863         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
14864         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
14865         this run-time check.
14866
14867         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
14868         of task termination procedure.
14869         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
14870         link for the task termination procedure.
14871
14872         * bindusg.adb: (Bindusg): Added documentation for -u option.
14873
14874         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
14875         (Get_Main_C): Add handling of dynamic stack analysis.
14876         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
14877
14878         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
14879         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
14880         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
14881
14882         * opt.ads: Added flags used by dynamic stack measurement.
14883         (Max_Line_Length): Remove (not used anymore)
14884
14885         * s-io.ads, s-io.adb (Standard_Error): new subprogram
14886         (Standart_Output): new subprogram
14887         (Set_Output): new subprogram
14888         (Put): now uses the value of Current_Out to know if the output has to be
14889         send to stderr or stdout.
14890         
14891         * s-stausa.ads: Complete implementation.
14892
14893         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
14894         
14895         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
14896         list of Ada 05 files.
14897         (GNAT Library Units): Add AltiVec files.
14898
14899         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
14900         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
14901         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
14902
14903 2005-12-09  Nicolas Setton  <setton@adacore.com>
14904
14905         * adaint.c (__gnat_locate_regular_file): Return immediately if
14906         file_name is empty.
14907
14908 2005-12-09  Javier Miranda  <miranda@adacore.com>
14909             Hristian Kirtchev  <kirtchev@adacore.com>
14910
14911         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
14912         to the specification because the frontend generates code that uses this
14913         subprogram.
14914         (Set_Interface_Table): Add missing assertion.
14915         Update documentation describing the run-time structure.
14916         (Displace): New subprogram that displaces the pointer to the object
14917         to reference one of its secondary dispatch tables.
14918         (IW_Membership): Modified to use the new table of interfaces.
14919         (Inherit_TSD): Modified to use the new table of interfaces.
14920         (Register_Interface_Tag): Use the additional formal to fill the
14921         contents of the new table of interfaces.
14922         (Set_Interface_Table): New subprogram that stores in the TSD the
14923         pointer to the table of interfaces.
14924         (Set_Offset_To_Top): Use the additional formal to save copy of
14925         the offset value in the table of interfaces.
14926         Update structure of GNAT Primary and Secondary dispatch table diagram.
14927         Add comment section on GNAT dispatch table prologue.
14928         (Offset_To_Signature): Update the constant value of the Signature field.
14929         (Dispatch_Table): Update comment on hidden fields in the prologue.
14930         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
14931         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
14932         the type of formal parameter T to Tag, introduce additional assertions.
14933         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
14934         conversion.
14935         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
14936
14937         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
14938         in all the calls to Expand_Interface_Thunk. Instead of referencing the
14939         record component containing the tag of the secondary dispatch table we
14940         have to use the Offset_To_Top run-time function to get this information;
14941         otherwise if the pointer to the base of the object has been displace
14942         we get a wrong value if we use the 'position attribute.
14943
14944         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
14945         all the calls to Expand_Interface_Thunk.
14946         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
14947         interfaces; hence the call to Set_Interface_Table was clearly wrong.
14948         (Collect_All_Interfaces): Modify the internal subprogram Collect to
14949         ensure that the interfaces implemented by the ancestors are placed
14950         at the header of the generated list.
14951         (Expand_Interface_Conversion): Handle the case in which the displacement
14952         associated with the interface conversion is not statically known. In
14953         this case we generate a call to the new run-time subprogram Displace.
14954         (Make_DT): Generate and fill the new table of interfaces.
14955         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
14956         Get_Tagged_Kind and Set_Tagged_Kind.
14957         (Tagged_Kind): New function that determines the tagged kind of a type
14958         with respect to limitedness and concurrency and returns a reference to
14959         RE_Tagged_Kind.
14960         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
14961         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
14962         primary dispatch table for a type.
14963         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
14964         secondary dispatch table respectively of a tagged type.
14965
14966         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
14967         (Expand_Interface_Conversion): New subprogram to indicate if the
14968         displacement of the type conversion is statically known.
14969         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
14970
14971         * rtsfind.ads (RE_Offset_To_Top): New entity
14972         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
14973         accessible to users.
14974         (Re_Displace): New entity
14975         (RE_Interface_Data): New entity
14976         (RE_Set_Interface_Data): New_Entity
14977         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
14978         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
14979         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
14980         RE_TK_Tagged, RE_TK_Task.
14981
14982         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
14983         Init_Secondary_Tags_Internal to allow its use with interface types and
14984         also to generate the code for the new additional actual required
14985         by Set_Offset_To_Top.
14986         (Build_Init_Statements): In case of components associated with abstract
14987         interface types there is no need to generate a call to its IP.
14988         (Freeze_Record_Type): Generate Select Specific Data tables only for
14989         concurrent types.
14990         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
14991         the bodies and specifications of the predefined primitive operations
14992         dealing with dispatching selects and abort, 'Callable, 'Terminated only
14993         for concurrent types.
14994
14995         * exp_sel.ads, exp_sel.adb: New files.
14996
14997         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
14998         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
14999         properly protected objects and attach handler in the case of the
15000         restricted profile.
15001         Move embeded package Select_Expansion_Utilities into a separate external
15002         package.
15003         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
15004         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
15005         (Build_K, Build_S_Assignment): New subprograms, part of the select
15006         expansion utilities.
15007         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
15008         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
15009         where the trigger is a dispatching procedure of a limited tagged type.
15010
15011 2005-12-09  Olivier Hainque  <hainque@adacore.com>
15012
15013         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
15014         pointer initialization values. Make a SAVE_EXPR instead. Add comments
15015         about the use and expansion of SAVE_EXPRs in the various possible
15016         renaming handling cases.
15017         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
15018         abusing DECL_FCONTEXT.
15019
15020 2005-12-09  Matthew Heaney  <heaney@adacore.com>
15021
15022         * a-convec.adb (Merge): Added assertions to check whether vector params
15023         are sorted.
15024
15025         * a-coinve.adb (Merge): Added assertions to check whether vector params
15026         are sorted.
15027
15028         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
15029         draft.
15030         (Cursor'Read): raises PE
15031
15032         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
15033         to its default value.
15034
15035         * a-cihama.adb: Manually check whether cursor's key and elem are
15036         non-null
15037
15038         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
15039         (Merge): Assert that target and source lists are in order
15040         (Swap): Declare non-const temporaries, to pass to Splice
15041
15042         * a-cdlili.ads: (Splice): Changed param name and param mode
15043
15044         * a-cdlili.adb: (Splice): Changed param name and param mode
15045         (Merge): Assert that target and source lists are in order
15046         (Swap): Declare non-const temporaries, to pass to Splice
15047
15048         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
15049         (Write): declare Stream param as not null
15050
15051         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
15052         an exception message.
15053
15054 2005-12-09  Thomas Quinot  <quinot@adacore.com>
15055             Robert Dewar  <dewar@adacore.com>
15056
15057         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
15058         which is the absolute maximum length we can support.
15059
15060         * frontend.adb: For the processing of configuration pragma files,
15061         remove references to Opt.Max_Line_Length, which is not checked anymore.
15062
15063         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
15064         length.
15065
15066         * scn.adb, scng.adb: 
15067         Always check line length against the absolute supported maximum,
15068         Hostparm.Max_Line_Length.
15069
15070         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
15071         value for the maximum line length is Max_Line_Length (not
15072         Column_Number'Last).
15073         Minor error msg update
15074         (Set_Style_Check_Options): New interface returning error msg
15075         Minor code reorganization (processing for 'M' was out of alpha order)
15076
15077         * switch-c.adb: New interface for Set_Style_Check_Options
15078
15079         * stylesw.ads (Set_Style_Check_Options): New interface returning error
15080         msg.
15081
15082 2005-12-09  Javier Miranda  <miranda@adacore.com>
15083
15084         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
15085         with IP subprogram were only supported if there were limited types.
15086
15087         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
15088         records with IP subprogram were only supported if there were limited
15089         types.
15090
15091 2005-12-09  Olivier Hainque  <hainque@adacore.com>
15092             Eric Botcazou  <ebotcazou@adacore.com>
15093
15094         * trans.c (tree_transform, emit_check): Adjust calls to
15095         build_call_raise, passing the now expected GNAT_NODE argument.
15096
15097         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
15098         source line information than what the current global locus indicates
15099         when appropriate.
15100
15101         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
15102         field has overflowed.
15103         (build_call_raise): Add a GNAT_NODE argument to convey better source
15104         line information than what the current global locus indicates when
15105         appropriate.
15106         (build_component_ref): Adjust call to build_call_raise.
15107
15108 2005-12-09  Pascal Obry  <obry@adacore.com>
15109
15110         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
15111         the iterator is quitting iteration on parent directory.
15112
15113 2005-12-09  Javier Miranda  <miranda@adacore.com>
15114
15115         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
15116         and the assignment to a class-wide object, before the assignment we
15117         generate a run-time check to ensure that the tag of the Target is
15118         covered by the tag of the source.
15119
15120 2005-12-09  Robert Dewar  <dewar@adacore.com>
15121
15122         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
15123         parameter in call to Image_Wide_Character.
15124
15125         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
15126         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
15127         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
15128         annoying FFFE/FFFF inconsistency.
15129
15130 2005-12-09  Robert Dewar  <dewar@adacore.com>
15131             Javier Miranda  <miranda@adacore.com>
15132             Ed Schonberg  <schonberg@adacore.com>
15133
15134         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
15135         of type conversion.
15136         (Find_Interface): New subprogram that given a tagged type and one of its
15137         component associated with the secondary table of an abstract interface
15138         type, return the entity associated with such abstract interface type.
15139         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
15140         base type to create anonymous subtype, because entity may be a locally
15141         declared subtype or generic actual.
15142         (Find_Interface): New subprogram that given a tagged type and one of its
15143         component associated with the secondary table of an abstract interface
15144         type, return the entity associated with such abstract interface type.
15145
15146         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
15147         conversion cannot be handled at compile time. In this case we pass this
15148         information to the expander to generate the appropriate code.
15149
15150 2005-12-09  Robert Dewar  <dewar@adacore.com>
15151             Ed Schonberg  <schonberg@adacore.com>
15152             Gary Dismukes  <dismukes@adacore.com>
15153             Javier Miranda  <miranda@adacore.com>
15154             Hristian Kirtchev  <kirtchev@adacore.com>
15155
15156         * einfo.adb (Itype_Printed): New flag
15157         (Is_Limited_Type): Derived types do not inherit limitedness from
15158         interface progenitors.
15159         (Is_Return_By_Reference_Type): Predicate does not apply to limited
15160         interfaces.
15161
15162         * einfo.ads (Itype_Printed): New flag
15163         Move Is_Wrapper_Package to proper section
15164         Add missing Inline for Is_Volatile
15165
15166         * output.ads, output.adb (Write_Erase_Char): New procedure
15167         (Save/Restore_Output_Buffer): New procedures
15168         (Save/Restore_Output_Buffer): New procedures
15169
15170         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
15171         Add missing support for anonymous access type
15172         (Write_Id): Insert calls to Write_Itype
15173         (Write_Itype): New procedure to output itypes
15174
15175         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
15176         use of "limited" in declaration.
15177
15178         * sinfo.ads, sinfo.adb: 
15179         Formal derived types can carry an explicit "limited" indication.
15180
15181         * sem_ch3.adb: Add with and use of Targparm.
15182         (Create_Component): If Frontend_Layout_On_Target is True and the
15183         copied component does not have a known static Esize, then reset
15184         the size and positional fields of the new component.
15185         (Analyze_Component_Declaration): A limited component is
15186         legal within a protected type that implements an interface.
15187         (Collect_Interfaces): Do not add to the list the interfaces that
15188         are implemented by the ancestors.
15189         (Derived_Type_Declaration): If the parent of the full-view is an
15190         interface perform a transformation of the tree to ensure that it has
15191         the same parent than the partial-view. This simplifies the job of the
15192         expander in order to generate the correct object layout, and it is
15193         needed because the list of interfaces of the full-view can be given in
15194         any order.
15195         (Process_Full_View): The parent of the full-view does not need to be
15196         a descendant of the parent of the partial view if both parents are
15197         interfaces.
15198         (Analyze_Private_Extension_Declaration): If declaration has an explicit
15199         "limited" the parent must be a limited type.
15200         (Build_Derived_Record_Type): A derived type that is explicitly limited
15201         must have limited ancestor and progenitors.
15202         (Build_Derived_Type): Ditto.
15203         (Process_Full_View): Verify that explicit uses of "limited" in partial
15204         and full declarations are consistent.
15205         (Find_Ancestor_Interface): Remove function.
15206         (Collect_Implemented_Interfaces): New procedure used to gather all
15207         implemented interfaces by a type.
15208         (Contain_Interface): New function used to check whether an interface is
15209         present in a list.
15210         (Find_Hidden_Interface): New function used to determine whether two
15211         lists of interfaces constitute a set equality. If not, the first
15212         differing interface is returned.
15213         (Process_Full_View): Improve the check for the "no hidden interface"
15214         rule as defined by AI-396.
15215
15216 2005-12-09  Robert Dewar  <dewar@adacore.com>
15217
15218         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
15219         types, not on record subtypes.
15220         (Freeze_Entity): Code cleanup. Add barrier to the loop
15221         that generates the references for primitive operations. This allows to
15222         remove an unnecessary exception handler.
15223         Code reformatting and comment clean ups.
15224
15225 2005-12-09  Vincent Celier  <celier@adacore.com>
15226
15227         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
15228         If GNAT CHECK is called with a project file, but with no
15229         source on the command line, call gnatcheck with all the compilable
15230         sources of the project.
15231         Take into account the new command Check, for gnatcheck. Treat as for
15232         other ASIS tools: take into account project, specific package Check and
15233         Compiler switches.
15234         For ASIS tools, add the switches in package Compiler for
15235         the invocation of the compiler.
15236
15237         * prj-attr.adb: Add package Check and its attributes
15238
15239         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
15240
15241         * vms_conv.adb (Initialize): Change Params of command Check to
15242         unlimited files.
15243         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
15244         Add data for new command Check
15245
15246         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
15247         ELIM.
15248         Add qualifiers for Check command options
15249         (Command_Type): New command Check
15250
15251 2005-12-09  Thomas Quinot  <quinot@adacore.com>
15252
15253         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
15254         command line switch overruns the output buffer.
15255
15256 2005-12-09  Robert Dewar  <dewar@adacore.com>
15257
15258         * sem_prag.adb: Processing for new pragma Complete_Representation
15259         (Analyze_Pragma, case Debug): Implement two argument form.
15260
15261         * par-prag.adb: Entry for new pragma Complete_Representation
15262         (Prag, case Debug): Recognize two argument form of pragma Debug
15263         New interface for Set_Style_Check_Options.
15264
15265         * sem_ch13.adb: Implement new pragma Complete_Representation.
15266
15267         * snames.adb, snames.ads, snames.h: Entry for new pragma
15268         Complete_Representation.
15269
15270 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
15271
15272         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
15273         available user-specified stream attributes on limited parameters to
15274         also test the type directly rather than only its underlying type (for
15275         Ada 95) and, in the case of Ada 2005, to check that the user-specified
15276         attributes are visible at the point of the subprogram declaration.
15277         For Ada 2005, the error message is modified to indicate that the
15278         type's stream attributes must be visible (again, only for -gnat05).
15279
15280 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
15281
15282         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
15283         anonymous access types.
15284
15285         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
15286         matching of anonymous access types and anonymous access to subprogram
15287         types. 'R'M 4.9.1 (2/2).
15288
15289 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
15290
15291         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
15292         rule prematurely when operands are universal, remaining ambiguities
15293         will be removed during resolution.
15294         Code cleanup.
15295
15296         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
15297         that are Ada 2005 functions.
15298         (Has_Abstract_Interpretation): Subsidiary to
15299         Remove_Conversions, to remove ambiguities caused by abstract operations
15300         on numeric types when operands are universal.
15301
15302 2005-12-09  Robert Dewar  <dewar@adacore.com>
15303
15304         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
15305         for case where spec is categorized.
15306
15307 2005-12-09  Javier Miranda  <miranda@adacore.com>
15308
15309         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
15310         types use the corresponding record type. This was not needed before
15311         the implementation of Ada 2005 synchronized types because
15312         concurrent types were never tagged types in Ada 95.
15313
15314 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
15315
15316         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
15317         first subtype of the type of the expression to verify that it is a
15318         legal Time type.
15319
15320 2005-12-09  Robert Dewar  <dewar@adacore.com>
15321
15322         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
15323         decoded names.
15324
15325 2005-12-09  Quentin Ochem  <ochem@adacore.com>
15326             Robert Dewar  <dewar@adacore.com>
15327             Ed Falis  <falis@adacore.com>
15328             Florian Villoing  <villoing@adacore.com>
15329             Thomas Quinot  <quinot@adacore.com>
15330             Arnaud Charlet  <charlet@adacore.com>
15331
15332         * gnat_ugn.texi: Created section "Stack Related Tools"
15333         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
15334         "Stack Related Tools"
15335         Added subsection "Static Stack Usage Analysis"
15336         Added subsection "Dynamic Stack Usage Analysis"
15337         Include documentation of itypes in sprint listing (-gnatG)
15338         Documented gnatbind -D switch (default sec stack size for fixed sec
15339         stacks).
15340         Added Interrupt_State and Persistent_BSS to list of configuration
15341         pragmas.
15342         Add missing doc for maximum value of nnn in -gnatyMnnn
15343
15344         * gnat_rm.texi: Document the AltiVec binding.
15345         Add documentation for pragma Complete_Representation
15346         Shortened an overly long line (> 79 chars)
15347         Clarify documentation of unchecked conversion in implementation
15348         defined cases.
15349         Document two argument form of pragma Debug
15350
15351         * types.ads (Column_Number): Update documentation.
15352
15353         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
15354         library level Finalize_Storage_Only objects (these are not attached to
15355         any finalization list).
15356
15357         * system-mingw.ads: (Underlying_Priorities): Update comment.
15358
15359 2005-12-09  Robert Dewar  <dewar@adacore.com>
15360
15361         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
15362         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
15363         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
15364         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
15365         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
15366         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
15367         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
15368         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
15369         reformatting.
15370
15371 2005-12-09  Robert Dewar  <dewar@adacore.com>
15372
15373         * s-vaflop-vms-alpha.adb: (Ne_F): New function
15374         (Ne_G): New function
15375
15376         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
15377         for tag assignment.
15378         (Rewrite_Comparison): Handle case where operation is not a comparison
15379         and ignore, and also handle type conversion case.
15380
15381 2005-12-09  Thomas Quinot  <quinot@adacore.com>
15382
15383         * exp_aggr.ads: Fix typo in comment.
15384         ???-mark Convert_Aggr_In_Assignment as needing documentation.
15385
15386 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
15387
15388         * layout.adb: Replace various uses of byte by storage unit throughout.
15389         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
15390         static size, convert to storage units before returning, to conform to
15391         spec.
15392
15393 2005-12-09  Matthew Gingell  <gingell@adacore.com>
15394
15395         * g-exctra.ads: Fix typo in comment.
15396
15397 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15398
15399         * utils.c: Minor reformatting.
15400
15401 2005-12-09  Robert Dewar  <dewar@adacore.com>
15402
15403         * g-soccon.ads: 
15404         Further comment fixes to make the status of the default file clear
15405
15406         * s-bitops.adb: Clarify comment for Bits_Array
15407
15408 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
15409
15410         * Make-lang.in (ada.install-normal): Remove.
15411
15412 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
15413
15414         * Make-lang.in: Remove all dependencies on s-gtype.
15415
15416 2005-12-05  Richard Guenther  <rguenther@suse.de>
15417
15418         * utils.c (convert): Use fold_convert where appropriate.
15419
15420 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
15421
15422         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
15423         a period is meant.
15424
15425 2005-12-02  Richard Guenther  <rguenther@suse.de>
15426
15427         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
15428
15429 2005-12-01  Roger Sayle  <roger@eyesopen.com>
15430
15431         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
15432         nodes.
15433
15434 2005-11-23  Laurent Guerby  <laurent@guerby.net>
15435
15436         * mlib-prj.adb (Build_Library): Initialize Delete.
15437
15438 2005-11-21  Joel Sherrill  <joel.sherrill@oarcorp.com>
15439
15440         * socket.c: Add extern int h_errno for rtems since networking header
15441         files are not available at this point in a tool bootstrap. Newlib
15442         only has basic C library header files.
15443
15444 2005-11-19  Richard Guenther  <rguenther@suse.de>
15445         Roger Sayle  <roger@eyesopen.com>
15446
15447         PR ada/23717
15448         * misc.c (internal_error_function): Don't use vsprintf to format
15449         the error message text, instead use pp_format_text and the new
15450         pretty printer APIs.  This allows handling of %qs, %w, etc.
15451
15452 2005-11-18  Laurent Guerby  <laurent@guerby.net>
15453
15454         PR ada/24857
15455         * Makefile.in: Use s-auxdec-empty for RTEMS.
15456
15457 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15458
15459         PR ada/22333
15460         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
15461         a temporary if taking the address of something that is neither
15462         reference, declaration, or constant, since the gimplifier
15463         can't handle that case.
15464
15465 2005-11-17  Laurent Guerby  <laurent@guerby.net>
15466
15467         PR ada/24857
15468         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
15469
15470 2005-11-16  Richard Guenther  <rguenther@suse.de>
15471
15472         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
15473
15474 2005-11-16  Joel Sherrill  <joel.sherrill@oarcorp.com>
15475
15476         PR ada/24855
15477         * raise-gcc.c: Add missing stdarg.h include.
15478  
15479 2005-11-16  Richard Guenther  <rguenther@suse.de>
15480
15481         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
15482         (ada/misc.o): Likewise.
15483
15484 2005-11-14  Thomas Quinot  <quinot@adacore.com>
15485
15486         * g-soccon.ads: Minor reformatting. Update comments.
15487
15488         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
15489         gain visibility on the declaration of struct timeval.
15490
15491         * g-soccon-freebsd.ads,
15492         g-soccon-darwin.ads,
15493         g-soccon-tru64.ads,
15494         g-soccon-aix.ads,
15495         g-soccon-irix.ads,
15496         g-soccon-hpux.ads,
15497         g-soccon-solaris.ads,
15498         g-soccon-vms.ads,
15499         g-soccon-mingw.ads,
15500         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
15501
15502         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
15503         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
15504         g-soccon-linux-x86.ads: New files.
15505
15506         * g-socthi-mingw.adb: 
15507         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
15508
15509         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
15510         (time_t, suseconds_t): New types constructed to match the tv_sec
15511         and tv_usec fields of C struct timeval.
15512         (Timeval): Construct structure in terms of the new types.
15513         (Host_Errno): New function (imported from socket.c), returns last hosts
15514         database error.
15515
15516         * g-socthi-vxworks.adb:  Add error handling circuitry.
15517
15518         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
15519         components of struct timeval.
15520         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
15521         (Check_Selector): In error conditions, clear internal socket sets to
15522         avoid a memory leak.
15523         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
15524         Send_Timeout, Receive_Timeout.
15525
15526         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
15527         the tv_sec and tv_usec fields of C struct timeval.
15528         (Timeval): Construct structure in terms of the new types.
15529         (Host_Errno): New function (imported from socket.c), returns last hosts
15530         database error.
15531
15532         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
15533         hosts database last error code.
15534
15535         * gen-soccon.c: Complete value expansion should not be performed on
15536         TARGET, as it has the form of a math expression, and some components
15537         may be platform-defined macros.
15538         For VxWorks, generate the OK and ERROR values.
15539         New constants giving the sizes of the components of C struct timeval.
15540
15541 2005-11-14  Robert Dewar  <dewar@adacore.com>
15542             Ed Schonberg  <schonberg@adacore.com>
15543
15544         PR ada/18434
15545         * types.ads: Include All_Checks in Suppress_Array
15546
15547         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
15548         not(a=b), since we no longer do this rewriting, and hence it is not
15549         needed.
15550         (Elaboration_Checks_Suppressed): Add special casing to
15551         deal with different cases of static and dynamic elaboration checks (all
15552         checks does not count in the first case, but does in the second).
15553         (Expr_Known_Valid): Do not assume that the result of any arbitrary
15554         function call is valid, since this is not the case.
15555         (Ensure_Valid): Do not apply validity check to a real literal
15556         in a universal or fixed context
15557
15558         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
15559         elementary types using the operator in standard. It is cleaner not to
15560         modify the programmers intent, especially in the case of floating-point.
15561         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
15562         it did not matter because we always rewrote a/=b to not(a=b).
15563         (Expand_Allocator_Expression): For an allocator expression whose nominal
15564         subtype is an unconstrained packed type, convert the expression to its
15565         actual constrained subtype.
15566         Implement warning for <= or >= where < or > not possible
15567         Fix to Vax_Float tests (too early in many routines, causing premature
15568         Vax_Float expansions.
15569
15570         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
15571         to be used with packages and generic packages as well as with
15572         subprograms.
15573         (Suppress): Set All_Checks, but not Elaboration_Check, for case
15574         of pragma Suppress (All_Checks)
15575         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
15576         a string literal for precise control over warnings.
15577         Avoid raise of pragma in case of unrecognized pragma and just return
15578         instead.
15579
15580         * sem_prag.ads: Minor reformatting
15581
15582         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
15583         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
15584         Switch. Do not handle any exception.
15585         Include -gnatwx as part of -gnatg (warn on redundant parens)
15586         Allow optional = after -gnatm
15587         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
15588         longer sets Elaboration_Checks.
15589         Code to set warning mode moved to Sem_Warn
15590         so that it can be shared by pragma processing.
15591
15592         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
15593         statement.
15594
15595         * s-taprop-solaris.adb: 
15596         Change some <= to =, to avoid new warning
15597
15598         * a-exexda.adb, prj-proc.adb: 
15599         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
15600         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
15601
15602 2005-11-14  Robert Dewar  <dewar@adacore.com>
15603
15604         * exp_vfpt.adb: Handle /= case
15605         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
15606         so that we do not get duplicate scaling for fixed point conversions.
15607
15608         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
15609
15610 2005-11-14  Matthew Gingell  <gingell@adacore.com>
15611
15612         * system-lynxos-ppc.ads, system-lynxos-x86.ads: 
15613         Increase default priority on Lynx from 15 to 17, and meet the Ada
15614         requirement that Default_Priority be ((Priority'First +
15615         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
15616
15617 2005-11-14  Vincent Celier  <celier@adacore.com>
15618
15619         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
15620         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
15621         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
15622         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
15623         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
15624         mlib-tgt-lynxos.adb (DLL_Prefix): New function
15625
15626 2005-11-14  Doug Rupp  <rupp@adacore.com>
15627
15628         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
15629         private part.
15630
15631 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
15632
15633         * s-traces-default.adb, s-trafor-default.ads,
15634         s-tratas-default.adb: Fix compilation errors.
15635
15636 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
15637
15638         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
15639         raising the exception so the memory used is freed.
15640
15641 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
15642
15643         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
15644         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
15645         (convert_address): Update comments and list of platforms using this.
15646
15647         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
15648         no longer used.
15649
15650 2005-11-14  Pascal Obry  <obry@adacore.com>
15651             Vincent Celier  <celier@adacore.com>
15652
15653         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
15654         GNAT.Command_Line.
15655
15656         * memroot.adb: Remove redundant with/use clause on
15657         System.Storage_Elements.
15658
15659 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
15660
15661         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
15662         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
15663         related code to a-exexpr.adb
15664         (Save_Occurrence_And_Private): Move GCC EH related code to
15665         a-exexpr-gcc.adb
15666         (Raise_Current_Excep): Add new variable Id with pragma
15667         volatile, to ensure that the variable lives on stack.
15668
15669         * a-exexpr-gcc.adb, raise-gcc.c: New file.
15670
15671         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
15672         from a-except.adb.
15673         Move GCC EH related code to a-exexpr-gcc.adb
15674
15675         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
15676         64-bit Solaris
15677         Split the Linux version of g-soccon into separate variants for 32 and 64
15678         bit platforms.
15679         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
15680         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
15681         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
15682         of host variable $(RANLIB_FLAGS).
15683         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
15684         Code clean up: remove unused/obsolete targets.
15685         (EH_MECHANISM): New variable introduced to differenciate between the
15686         two EH mechanisms statically.
15687         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
15688         (LIBGNAT_OBJS): Add raise-gcc.o
15689         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
15690         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
15691         supports VxWorks 6 RTPs.
15692         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
15693         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
15694
15695         * raise.c: Move all GCC EH-related routines to raise-gcc.c
15696
15697 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
15698
15699         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
15700         deferral level, when abort is not allowed, to a later stage (the
15701         Task_Wrapper).
15702         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
15703         it will not get changed by the generated code. It was previously done
15704         in Create_Task.
15705
15706 2005-11-14  Thomas Quinot  <quinot@adacore.com>
15707             Olivier Hainque  <hainque@adacore.com>
15708             Eric Botcazou  <ebotcazou@adacore.com>
15709
15710         * decl.c:
15711         Factor common code to build a storage type for an unconstrained object
15712         from a fat or thin pointer type and a constrained object type.
15713         (annotate_value): Handle BIT_AND_EXPR.
15714         (annotate_rep): Don't restrict the back annotation of inherited
15715         components to the type_annotate_only case.
15716         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
15717         we are not defining the type.
15718         <E_Record_Type>: Likewise.
15719         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
15720         to get advantage of the new maybe_stabilize_reference interface, to
15721         ensure that what we reference is indeed stabilized instead of relying
15722         on assumptions on what the stabilizer does.
15723         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
15724         type imported through a limited_with clause, use its non-limited view.
15725         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
15726         differentiation.
15727         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
15728         of #if sections + explicit comparisons of convention identifiers.
15729         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
15730         before early-returning for certain types when code generation is
15731         disabled.
15732         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
15733         nullification of gnu_expr we do for objects with address clause and
15734         that we are not defining.
15735         (elaborate_expression_1): Do not create constants when creating
15736         variables needed by the debug info: the dwarf2 writer considers that
15737         CONST_DECLs is used only to represent enumeration constants, and emits
15738         nothing for them.
15739         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
15740         object with an address clause into an indirect reference, drop the
15741         initializing expression.
15742         Include "expr.h".
15743         (STACK_CHECK_BUILTIN): Delete.
15744         (STACK_CHECK_PROBE_INTERVAL): Likewise.
15745         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
15746         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
15747         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
15748         corresponding to the renamed object as ignored for debugging purposes.
15749
15750         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
15751         related): For a prefix that is a dereference of a fat or thin pointer,
15752         if there is an actual subtype provided by the front-end, use that
15753         subtype to build an actual type with bounds template.
15754         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
15755         is provided by the front-end, use that subtype to compute the size of
15756         the deallocated object.
15757         (gnat_to_gnu): When adding a statement into an elaboration procedure,
15758         check for a potential violation of a No_Elaboration_Code restriction.
15759         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
15760         with extra arguments to control whether to recurse through non-values
15761         and to let the caller know if the stabilization has succeeded.
15762         (gnat_stabilize_reference): Now a simple wrapper around
15763         maybe_stabilize, for common uses without restriction on lvalues and
15764         without need to check for the success indication.
15765         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
15766         pass false instead of 0 as the FORCE argument which is a bool.
15767         (Identifier_to_gnu): Remove checks ensuring that an renamed object
15768         attached to a renaming pointer has been properly stabilized, as no such
15769         object is attached otherwise.
15770         (call_to_gnu): Invoke create_var_decl to create the temporary when the
15771         function uses the "target pointer" return mechanism.
15772         Reinstate conversion of the actual to the type of the formal
15773         parameter before any other specific treatment based on the passing
15774         mechanism. This turns out to be necessary in order for PLACEHOLDER
15775         substitution to work properly when the latter type is unconstrained.
15776
15777         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
15778         common pattern.
15779         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
15780         with extra arguments to control whether to recurse through non-values
15781         and to let the caller know if the stabilization has succeeded.
15782
15783         * utils2.c (gnat_build_constructor): Only sort the fields for possible
15784         static output of record constructor if all the components are constant.
15785         (gnat_build_constructor): For a record type, sort the list of field
15786         initializers in increasing bit position order.
15787         Factor common code to build a storage type for an unconstrained object
15788         from a fat or thin pointer type and a constrained object type.
15789         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
15790         types variants, and process special cases of VIEW_CONVERT expressions
15791         as their NOP_EXPR counterpart to ensure we get to the
15792         CORRESPONDING_VARs associated with CONST_DECls.
15793         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
15794         on the right-hand side.
15795
15796         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
15797         a common pattern.
15798         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
15799         are converting back to its original type.
15800         (convert) <JM input>: Fallthrough regular conversion code instead of
15801         extracting the object if converting to a type variant.
15802         (create_var_decl): When a variable has an initializer requiring code
15803         generation and we are at the top level, check for a potential violation
15804         of a No_Elaboration_Code restriction.
15805         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
15806         SIZE and SIZE_UNIT which we need for later back-annotations.
15807         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
15808         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
15809         is an unchecked union.
15810         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
15811         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
15812         main variant, just replace the VIEW_CONVERT_EXPR.
15813         <UNION_TYPE>: Revert 2005-03-02 change.
15814
15815         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
15816
15817         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
15818
15819 2005-11-14  Matthew Heaney  <heaney@adacore.com>
15820
15821         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
15822         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
15823         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
15824         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
15825         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
15826         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
15827         Compiles against the spec for ordered maps described in sections
15828         A.18.6 of the most recent (August 2005) AI-302 draft.
15829
15830 2005-11-14  Olivier Hainque  <hainque@adacore.com>
15831
15832         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
15833         to ensure bias adjustments take place when need be and to prevent
15834         occurrences of intermediate overflows.
15835
15836 2005-11-14  Matthew Gingell  <gingell@adacore.com>
15837             Olivier Hainque  <hainque@adacore.com>
15838
15839         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
15840         ia64 HP-UX.
15841
15842         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
15843         tracebacks on ia64 HP-UX and provide explanatory comment.
15844         Enable backtraces on ia64 GNU/Linux.
15845         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
15846         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
15847
15848 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
15849             Javier Miranda  <miranda@adacore.com>
15850
15851         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
15852         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
15853         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
15854         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
15855
15856         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
15857         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
15858         assertions).
15859
15860         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
15861         subprogram that generates the external name associated with a
15862         secondary dispatch table.
15863         (Get_Secondary_DT_External_Name): New subprogram that generates the
15864         external name associated with a secondary dispatch table.
15865
15866 2005-11-14  Emmanuel Briot  <briot@adacore.com>
15867
15868         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
15869         line in the ALI file to include both an instantiation reference, and a
15870         returned value.
15871
15872 2005-11-14  Vincent Celier  <celier@adacore.com>
15873
15874         * clean.adb (Check_Project): Look for Ada code in extending project,
15875         even if Ada is not specified as a language.
15876         Use new function DLL_Prefix for DLL_Name
15877         (Clean_Interface_Copy_Directory): New procedure
15878         (Clean_Library_Directory): New procedure
15879         (Clean_Directory): Remove procedure, no longer used
15880         (Clean_Project): Do not delete any file in an externally built project
15881
15882         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
15883         directory of an extending project, even when there are no Ada source
15884         present.
15885         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
15886         (Set_Ada_Paths.Add.Recursive_Add): Ditto
15887
15888         * mlib-prj.adb (Check_Library): For all library projects, get the
15889         library file timestamp.
15890         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
15891         (Build_Library): Use new function DLL_Prefix for the DLL_Name
15892         (Clean): Remove procedure, no longer used
15893         (Ultimate_Extension_Of): New function
15894         (Build_Library): When cleaning the library directory, only remove an
15895         existing library file and any ALI file of a source of the project.
15896         When cleaning the interface copy directory, remove any source that
15897         could be a source of the project.
15898
15899         * prj.ads, prj.adb (Project_Empty): Add values of new components
15900         Library_TS and All_Imported_Projects.
15901         (Project_Empty): Add values for new components of Project_Data:
15902         Library_ALI_Dir and Display_Library_ALI_Dir
15903
15904         * prj-attr.adb: New project level attribute name Library_ALI_Dir
15905
15906         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
15907         attribute Library_ALI_Dir.
15908         (Check_Library_Attributes): The library directory cannot be the same as
15909         any source directory of the project tree.
15910         (Check_Stand_Alone_Library): The interface copy directory cannot be
15911         the same as any source directory of the project tree.
15912
15913         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
15914         all temporary files.
15915
15916 2005-11-14  Robert Dewar  <dewar@adacore.com>
15917             Ed Schonberg  <schonberg@adacore.com>
15918
15919         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
15920         (Check_Elab_Call): A call within a protected body is never an
15921         elaboration call, and does not require checking.
15922         (Same_Elaboration_Scope): Take into account protected types for both
15923         entities.
15924         (Activate_Elaborate_All_Desirable): New procedure
15925
15926         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
15927         desirable
15928
15929         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
15930         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
15931
15932         * lib-writ.ads, lib-writ.adb: 
15933         Implement new AD/ED for Elaborate_All/Elaborate desirable
15934         Use new Elaborate_All_Desirable flag in N_With_Clause node
15935
15936         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
15937         N_Free_Statement nodes.
15938         Define new class N_Subprogram_Instantiation
15939         Add Elaborate_Desirable flag to N_With_Clause node
15940         Add N_Delay_Statement (covering two kinds of delay)
15941
15942         * debug.adb: Introduce d.f flag for compiler
15943         Add -da switch for binder
15944
15945 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15946             Cyrille Comar  <comar@adacore.com>
15947
15948         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
15949         for task component, in the case of a limited aggregate. The enclosed
15950         object declaration will create it earlier. Otherwise, in the case of a
15951         nested aggregate, the object may appear in the wrong scope.
15952         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
15953         (Gen_Assign): If the component being assigned is an array type and the
15954         expression is itself an aggregate, wrap the assignment in a block to
15955         force finalization actions on the temporary created for each row of the
15956         enclosing object.
15957         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
15958         structures are initialized after all discriminants are set so that
15959         they can be accessed even when their offset is dynamic.
15960
15961 2005-11-14  Robert Dewar  <dewar@adacore.com>
15962             Hristian Kirtchev  <kirtchev@adacore.com>
15963
15964         * sem_attr.adb: Implement Machine_Rounding attribute
15965         (Analyze_Access_Attribute): The access attribute may appear within an
15966         aggregate that has been expanded into a loop.
15967         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
15968         'Terminated whenever the prefix is of a task interface class-wide type.
15969         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
15970         the prefix is of a task interface class-wide type.
15971
15972         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
15973         to avoid warnings.
15974
15975         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
15976         Remove pragma Inline for [Unaligned_]Valid.
15977         Add comments that Valid routines do not work for Vax_Float
15978
15979         * exp_attr.adb: Implement Machine_Rounding attribute
15980
15981         * snames.h: Add entry for Machine_Rounding attribute
15982
15983 2005-11-14  Javier Miranda  <miranda@adacore.com>
15984             Robert Dewar  <dewar@adacore.com>
15985             Hristian Kirtchev  <kirtchev@adacore.com>
15986
15987         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
15988         and related): For a prefix that is an explicit dereference of an
15989         access to unconstrained packed array type, annotate the dereference
15990         with an actual subtype so GIGI can make a correct size computation.
15991         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
15992         'Unrestricted_Access, if the designated type is an interface we
15993         add a type conversion to force the displacement of the pointer
15994         to the secondary dispatch table.
15995         Use Universal_Real instead of Long_Long_Float when we need a high
15996         precision float type for the generated code (prevents gratuitous
15997         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
15998         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
15999         'Terminated for task interface class-wide objects. Generate a call to
16000         the predefined dispatching routine used to retrieve the _task_id from
16001         a task corresponding record.
16002         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
16003
16004         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
16005         (Check_Dispatching_Operation): Protect the frontend againts
16006         previously detected errors.
16007
16008         * Makefile.rtl: Add new instantiations of system.fat_gen
16009
16010         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
16011         Change name of instantiated package for better consistency
16012         with newly added system.fat_gen instantiations.
16013
16014         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
16015         s-fvagfl.ads: New files.
16016
16017 2005-11-14  Cyrille Comar  <comar@adacore.com>
16018             Thomas Quinot  <quinot@adacore.com>
16019
16020         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
16021         assignment of a value of a tagged type that has been rewritten to a
16022         block statement, it is known by construction that no checks are
16023         necessary for the statements within the block: analyze it with checks
16024         suppressed.
16025         (Expand_N_If_Statement): When killing a dead then-branch in an
16026         if-statement that has elsif_parts, recompute the Current_Value node
16027         for any entity whose value is known from the condition of the first
16028         elsif_part.
16029         (Expand_N_Return_Statement): When returning a mutable record, convert
16030         the return value into its actual subtype in order to help the backend
16031         to return the actual size instead of the maximum. This is another
16032         aftermath of not returning mutable records on the sec-stack anymore.
16033
16034         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
16035         handling of error msg for suspicious reverse range iteration.
16036         (Check_Possible_Current_Value_Condition): Move declaration from body to
16037         spec, to allow this subprogram to be called from exp_ch5.
16038
16039 2005-11-14  Thomas Quinot  <quinot@adacore.com>
16040
16041         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
16042         generate a set of nested array aggregates instead of a single flat
16043         aggregate for multi-dimensional arrays.
16044
16045 2005-11-14  Pascal Obry  <obry@adacore.com>
16046
16047         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
16048         by spawnve is a process handle, no need to convert. Add a parameter
16049         close to control wether the process handle must be closed.
16050         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
16051         a process handle, not need to convert.
16052         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
16053
16054         * g-expect.adb: (Kill): Document the new close parameter.
16055         (Close): Do not release the process handle in the kill there as
16056         waitpid() is using it.
16057         (Send_Signal): Release the process handle.
16058
16059 2005-11-14  Robert Dewar  <dewar@adacore.com>
16060
16061         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
16062         need a high precision float type for the generated code (prevents
16063         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
16064         used).
16065
16066         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
16067         need a high precision float type for the generated code (prevents
16068         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
16069         used).
16070         (Expand_Width_Attribute): In configurable run-time, the attribute is not
16071         allowed on non-static enumeration subtypes. Force a load error to emit
16072         the correct diagnostic.
16073
16074 2005-11-14  Thomas Quinot  <quinot@adacore.com>
16075             Robert Dewar  <dewar@adacore.com>
16076             Ed Schonberg  <schonberg@adacore.com>
16077
16078         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
16079         subtype to compute the size of the designated object at run-time,
16080         create such a subtype and store it in the Actual_Designated_Subtype
16081         attribute of the N_Free_Statement.
16082         Generate itype for classwide designated object in both cases of
16083         user-specified storage pool: specific and class-wide, not only in the
16084         specific case.
16085         Raise CE when trying to set a not null access type object to null.
16086         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
16087         an explicit loop, because freeze nodes make its position variable.
16088
16089         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
16090         null object.
16091
16092 2005-11-14  Javier Miranda  <miranda@adacore.com>
16093
16094         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
16095         Build_Stream_Procedure): Add the null-excluding attribute to the first
16096         formal.
16097         This has no semantic meaning under Ada95 mode but it is a
16098         requirement under Ada05 mode.
16099
16100         * par-ch3.adb (P_Access_Definition): Addition of warning message if
16101         the null exclusion is used under Ada95 mode
16102         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
16103         (P_Access_Definition): Remove assertion that forbids the use of
16104         the null-exclusion feature in Ada95.
16105
16106 2005-11-14  Robert Dewar  <dewar@adacore.com>
16107
16108         * impunit.adb: Exclude container helper units not intended for use by
16109         users.
16110
16111 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16112
16113         * freeze.adb (Freeze_Entity): For an access formal that is an access
16114         to subprogram, freeze the anonymous subprogram type at the same time,
16115         to prevent later freezing in the wrong scope, such as the enclosing
16116         subprogram body.
16117         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
16118         subprogram whenever available.
16119
16120 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
16121
16122         PR ada/23732
16123         * gnatvsn.ads (Library_Version): Bump to 4.1
16124
16125 2005-11-14  Robert Dewar  <dewar@adacore.com>
16126
16127         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
16128         Storage_Offset to avoid wrap around causing invalid results.
16129
16130 2005-11-14  Pascal Obry  <obry@adacore.com>
16131
16132         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
16133         cross-compiler.
16134         (Scan_Bind_Arg): Fail with an error message if -M option is used
16135         on a native compiler.
16136
16137 2005-11-14  Robert Dewar  <dewar@adacore.com>
16138             Vincent Celier  <celier@adacore.com>
16139
16140         * gprep.adb: Implement -C switch to scan comments
16141
16142         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
16143
16144         * scans.ads: Comment updates (including new use of Tok_Comment in
16145         preprocessing)
16146
16147         * opt.ads: Add documentation for flags that are used by gprmake,
16148         currently and in the next version of gprmake.
16149         (Verbosity_Level): New variable
16150         Add Replace_In_Comments switch
16151
16152         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
16153         and -vm.
16154         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
16155
16156 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
16157
16158         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
16159         message, friendlier.
16160
16161 2005-11-14  Robert Dewar  <dewar@adacore.com>
16162
16163         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
16164
16165 2005-11-14  Doug Rupp  <rupp@adacore.com>
16166
16167         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
16168
16169 2005-11-14  Robert Dewar  <dewar@adacore.com>
16170
16171         * interfac.ads: Change declarations of IEEE float types so that we no
16172         longer need a separate version of this package for VMS.
16173
16174 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16175
16176         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
16177         internal entity created for the declaration of a child subprogram body
16178         with no spec as coming from source, to generate proper cross-reference
16179         information.
16180
16181 2005-11-14  Vincent Celier  <celier@adacore.com>
16182
16183         * make.adb (Compile_Sources): Change verbose message to minimum
16184         verbosity level High for "is in an Ada library", "is a read-only
16185         library" and "is an internal library",
16186         (Create_Binder_Mapping_File): Path name of ALI file for library project
16187         must include the library directory, not the object directory.
16188         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
16189         for new switches -vl, -vm and -vh.
16190         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
16191         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
16192         (Compile_Sources): Do not attempt to compile if an ALI file is missing
16193         in a project that is externally built.
16194         (Compute_All_Imported_Projects): New procedure
16195         (Gnatmake): Check if importing libraries should be regenerated because
16196         at least an imported library is more recent.
16197         (Initialize): For each project compute the list of the projects it
16198         imports directly or indirectly.
16199         (Add_Library_Search_Dir): New procedure, used in place of
16200         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
16201         put in the search paths.
16202         (Add_Source_Search_Dir): New procedure, used in place of
16203         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
16204         put in the search paths.
16205         (Mark_Directory): Resolve the absolute path the directory before marking
16206         it.
16207
16208         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
16209         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
16210         Switch. Do not handle any exception.
16211         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
16212         so that the switch is recognized as valid.
16213         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
16214
16215 2005-11-14  GNAT Script  <nobody@adacore.com>
16216
16217         * Make-lang.in: Makefile automatically updated
16218
16219 2005-11-14  Pascal Obry  <obry@adacore.com>
16220
16221         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
16222         used.
16223         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
16224         In both cases the last argument was dropped.
16225
16226 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
16227
16228         * namet.h: (Column_Numbe): New type.
16229         (Get_Column_Number): Define to sinput__get_column_number.
16230         (Instantiation): Define to sinput__instantiation.
16231         (Get_Column_Number): Declare.
16232         (Instantiation): Likewise.
16233
16234 2005-11-14  Robert Dewar  <dewar@adacore.com>
16235
16236         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
16237         syntax, which could cause compiler hangs.
16238
16239 2005-11-14  Vincent Celier  <celier@adacore.com>
16240
16241         * prj-ext.adb: Take into account new environment variable
16242         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
16243         are defined.
16244         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
16245         normalize its path name, making it absolute and resolving symbolic
16246         links, and replace the original if resolved path is different.
16247
16248 2005-11-14  Vincent Celier  <celier@adacore.com>
16249
16250         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
16251         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
16252
16253 2005-11-14  Emmanuel Briot  <briot@adacore.com>
16254
16255         * prj-pp.adb (Print): Do not output the with statement if the
16256         associated name is empty, which happens for virtual extending projects.
16257         (Print): Preserve the "extends all" attribute when printing the project.
16258
16259         * prj-tree.ads (String_Value_Of): Add comment about returned value for
16260         a virtual extending project.
16261
16262 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16263
16264         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
16265         rhs of an assignment even if the type is unconstrained, when the
16266         context is non-expanding.
16267         In an inlined body, if the context type is private,
16268         resolve with its full view, which must be a composite type.
16269
16270 2005-11-14  Robert Dewar  <dewar@adacore.com>
16271             Ed Schonberg  <schonberg@adacore.com>
16272
16273         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
16274         Do not give obsolescent warning on with of subprogram (since we
16275         diagnose calls)
16276         (Analyze_With_Clause): Add test for obsolescent package
16277         (Install_Context_Clauses): If the unit is the body of a child unit, do
16278         not install twice the private declarations of the parents, to prevent
16279         circular lists of Use_Clauses in a parent.
16280         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
16281         compiling body of child unit.
16282         Use new class N_Subprogram_Instantiation
16283         (Expand_With_Clause): If this is a private with_clause for a child unit,
16284         appearing in the context of a package declaration, then the implicit
16285         with_clauses generated for parent units are private as well.
16286         (License_Check): Do not generate message if with'ed unit is internal
16287
16288 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
16289             Ed Schonberg  <schonberg@adacore.com>
16290             Thomas Quinot  <quinot@adacore.com>
16291
16292         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
16293         names are internal, because they will not have a corresponding partner
16294         in the actual package.
16295         (Analyze_Formal_Package): Move the setting of the formal package spec's
16296         Generic_Parent field so that it occurs prior to analyzing the package,
16297         to allow proper operation of Install_Parent_Private_Declarations.
16298         (Analyze_Package_Instantiation): Set the instantiated package entity's
16299         Package_Instantiation field.
16300         (Get_Package_Instantiation_Node): Move declaration to package spec.
16301         Retrieve the N_Package_Instantiation node when the Package_Instantiation
16302         field is present.
16303         (Check_Generic_Child_Unit): Within an inlined call, the only possible
16304         instantiation is Unchecked_Conversion, for which no parents are needed.
16305         (Inline_Instance_Body): Deinstall and record the use_clauses for all
16306         parent scopes of a scope being removed prior to inlining an instance
16307         body.
16308         (Analyze_Package_Instantiation): Do not perform front-end inlining when
16309         the current context is itself an instance within a non-instance child
16310         unit, to prevent scope stack errors.
16311         (Save_References): If the node is an aggregate that is an actual in a
16312         call, rewrite as a qualified expression to preserve some type
16313         information, to resolve possible ambiguities in the instance.
16314         (Instance_Parent_Unit): New global variable to record the ultimate
16315         parent unit associated with a generic child unit instance (associated
16316         with the existing Parent_Unit_Visible flag).
16317         (type Instance_Env): New component Instance_Parent_Unit for stacking
16318         parents recorded in the global Instance_Parent_Unit.
16319         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
16320         stack.
16321         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
16322         it's not a top-level unit, and only do this if Instance_Parent_Unit is
16323         not already set. Replace test of Is_Child_Unit with test of parent's
16324         scope against package Standard. Add comments and a ??? comment.
16325         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
16326         on a child instance parent to test that the parent equals
16327         Instance_Parent rather than simply checking that the unit is not a
16328         child unit.
16329         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
16330         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
16331         a formal interface are ancestors of the corresponding actual.
16332         (Validate_Formal_Interface_Type): Additional legality checks.
16333         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
16334         interface types with ancestors.
16335         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
16336         to diagnose attempts to use generic within its own declaration.
16337
16338 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16339             Javier Miranda  <miranda@adacore.com>
16340
16341         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
16342         discriminant.
16343         (Build_Private_Derived_Type): The entity of the created full view of the
16344         derived type does not come from source. If after installing the private
16345         declarations of the parent scope the parent is still private, use its
16346         full view to construct the full declaration of the derived type.
16347         (Build_Derived_Record_Type): Relax the condition that controls the
16348         execution of the check that verifies that the partial view and
16349         the full view agree in the set of implemented interfaces. In
16350         addition, this test now only takes into account the progenitors.
16351         (Derive_Interface_Subprograms): No need to derive subprograms
16352         of ancestors that are interfaces.
16353         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
16354         associated code.
16355         Change name Is_Package to Is_Package_Or_Generic_Package
16356         (Complete_Subprograms_Derivation): Handle the case in which the full
16357         view is a transitive derivation of the ancestor of the partial view.
16358         (Process_Full_View): Rename local subprogram Find_Interface_In_
16359         Descendant to Find_Ancestor_Interface to leave the code more clear.
16360         Remove wrong code that avoids the generation of an error message
16361         when the immediate ancestor of the partial view is an interface.
16362         In addition some minor reorganization of the code has been done to
16363         leave it more clear.
16364         (Analyze_Type_Declaration): If type has previous incomplete tagged
16365         partial view, inherit properly its primitive operations.
16366         (Collect_Interfaces): Make public, for analysis of formal
16367         interfaces.
16368         (Analyze_Interface_Declaration): New procedure for use for regular and
16369         formal interface declarations.
16370         (Build_Derived_Record_Type): Add support for private types to the code
16371         that checks if a tagged type implements abstract interfaces.
16372         (Check_Aliased_Component_Type): The test applies in the spec of an
16373         instance as well.
16374         (Access_Type_Declaration): Clean up declaration of malformed type
16375         declared as an access to its own classwide type, to prevent cascaded
16376         crash.
16377         (Collect_Interfaces): For private extensions and for derived task types
16378         and derived protected types, the parent may be an interface that must
16379         be included in the interface list.
16380         (Access_Definition): If the designated type is an interface that may
16381         contain tasks, create Master_Id for it before analyzing the expression
16382         of the declaration, which may be an allocator.
16383         (Record_Type_Declaration): Set properly the interface kind, for use
16384         in allocators, the creation of master id's for task interfaces, etc.
16385
16386 2005-11-14  Javier Miranda  <miranda@adacore.com>
16387             Ed Schonberg  <schonberg@adacore.com>
16388
16389         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
16390         omitted in case of stream attribute subprograms.
16391         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
16392         appear immediately after a subprogram body, when there is no previous
16393         subprogram declaration.
16394         Change name Is_Package to Is_Package_Or_Generic_Package
16395         (Process_Formals): A non null qualifier on a non null named access
16396         type is not an error, and is a warning only if Redundant_Constructs
16397         are flagged.
16398
16399 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
16400             Ed Schonberg  <schonberg@adacore.com>
16401
16402         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
16403         nested within Analyze_Package_Specification to install the private
16404         declarations and use clauses within each of the parent units of a
16405         package instance of a generic child package.
16406         (Analyze_Package_Specification): When entering a private part of a
16407         package associated with a generic instance or formal package, the
16408         private declarations of the parent must be installed (by calling new
16409         procedure Install_Parent_Private_Declarations).
16410         Change name Is_Package to Is_Package_Or_Generic_Package
16411         (Preserve_Full_Attributes): For a synchronized type, the corresponding
16412         record is absent in a generic context, which does not indicate a
16413         compiler error.
16414
16415 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16416
16417         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
16418         not try to rewrite a renamed stream attribute, because the operations
16419         on the type may not have been generated.
16420         Handle properly a renaming_as_body generated for a stream operation
16421         whose default is abstract because the object type itself is abstract.
16422         (Find_Type): If the type is incomplete and appears as the prefix of a
16423         'Class reference, it is tagged, and its list of primitive operations
16424         must be initialized properly.
16425         (Chain_Use_Clauses): When chaining the use clauses that appear in the
16426         private declaration of a parent unit, prior to compiling the private
16427         part of a child unit, find on the scope stack the proper parent entity
16428         on which to link the use clause.
16429         (Note_Redundant_Use): Emit a warning when a redundant use clause is
16430         detected.
16431         (Analyze_Object_Renaming): An attribute reference is not a legal object
16432         if it is not a function call.
16433
16434 2005-11-14  Robert Dewar  <dewar@adacore.com>
16435             Ed Schonberg  <schonberg@adacore.com>
16436
16437         * sem_eval.adb: Implement d.f flag
16438         (Subtype_Statically_Match): A generic actual type has unknown
16439         discriminants when the corresponding actual has a similar partial view.
16440         If the routine is called to validate the signature of an inherited
16441         operation in a child instance, the generic actual matches the full view,
16442
16443 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
16444             Ed Schonberg  <schonberg@adacore.com>
16445             Robert Dewar  <dewar@adacore.com>
16446             Thomas Quinot  <quinot@adacore.com>
16447
16448         * sem_res.adb (Resolve_Call): Provide a better error message whenever
16449         a procedure call is used as a select statement trigger and is not an
16450         entry renaming or a primitive of a limited interface.
16451         (Valid_Conversion): If the operand has a single interpretation do not
16452         remove address operations.
16453         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
16454         statement to inhibit warning.
16455         (Resolve_Unary_Op): Do not produce a warning when
16456         processing an expression of the form -(A mod B)
16457         Use Universal_Real instead of Long_Long_Float when we need a high
16458         precision float type for the generated code (prevents gratuitous
16459         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
16460         (Resolve_Concatenation_Arg): Improve error message when argument is an
16461         ambiguous call to a function that returns an array.
16462         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
16463         there is an implicit operator in the given scope if we are within an
16464         instance: legality check has been performed on the generic.
16465         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
16466         after resolving operand, to avoid false warnings on overloaded calls.
16467
16468 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16469             Javier Miranda  <miranda@adacore.com>
16470
16471         PR ada/15604
16472         * sem_type.adb (Covers): In an inlined body, a composite type matches
16473         a private type whose full view is a composite type.
16474         (Interface_Present_In_Ancestor): Protect the frontend against
16475         previously detected errors to ensure that its compilation
16476         with assertions enabled gives the same output that its
16477         compilation without assertions.
16478         (Interface_Present_In_Ancestor): Add support for private types.
16479         Change name In_Actual to In_Generic_Actual (clean up)
16480         (Disambiguate): New predicate In_Actual, to recognize expressions that
16481         appear in the renaming declaration generated for generic actuals, and
16482         which must be resolved in the outer context.
16483
16484 2005-11-14  Robert Dewar  <dewar@adacore.com>
16485             Thomas Quinot  <quinot@adacore.com>
16486             Hristian Kirtchev  <kirtchev@adacore.com>
16487             Ed Schonberg  <schonberg@adacore.com>
16488
16489         * sem_util.ads, sem_util.adb: Change name Is_Package to
16490         Is_Package_Or_Generic_Package.
16491         (Check_Obsolescent): New procedure.
16492         (Set_Is_Public): Remove obsolete junk test.
16493         (Set_Public_Status): Do not set Is_Public on an object whose declaration
16494         occurs within a handled_sequence_of_statemets.
16495         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
16496         for a parameterless procedure.
16497         (Enter_Name): Recognize renaming declarations created for private
16498         component of a protected type within protected operations, so that
16499         the source name of the component can be used in the debugger.
16500
16501 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
16502             Robert Dewar  <dewar@adacore.com>
16503
16504         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
16505         of a generic subprogram are not visible outside the body.
16506         (Set_Warning_Switch): New procedure (code to set warning mode moved
16507         here from Switch.C so that it can be shared by pragma processing.
16508         (Check_References): Special case warning for non-modified non-imported
16509         volatile objects.
16510         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
16511         form with a string literal argument
16512
16513 2005-11-14  Javier Miranda  <miranda@adacore.com>
16514
16515         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
16516         anonymous access.
16517         (Write): Addition of "not null" to the anonymous access.
16518         (Read): Addition of "not null" to the anonymous access.
16519         (Write): Addition of "not null" to the anonymous access.
16520
16521         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
16522         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
16523         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
16524         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
16525         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
16526         "not null" to the anonymous access.
16527
16528 2005-11-14  Robert Dewar  <dewar@adacore.com>
16529
16530         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
16531         offset values
16532
16533 2005-11-14  Vincent Celier  <celier@adacore.com>
16534
16535         * switch.adb (Bad_Switch): New procedure
16536         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
16537         message when in error.
16538
16539         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
16540         Too_Many_Output_Files): Remove declarations, no longer used.
16541         (Scan_Nat): New parameter Switch
16542         (Scan_Pos): Ditto
16543         (Bad_Switch): New procedure
16544
16545         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
16546         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
16547         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
16548         to Osint.Fail. Do not handle any exception.
16549
16550 2005-11-14  Vincent Celier  <celier@adacore.com>
16551
16552         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
16553         designates a non existent directory.
16554
16555 2005-11-14  Robert Dewar  <dewar@adacore.com>
16556
16557         * xgnatugn.adb: Replace invalid membership test by 'Valid
16558
16559 2005-11-14  Vincent Celier  <celier@adacore.com>
16560
16561         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
16562         there is no object directory.
16563
16564 2005-11-14  Robert Dewar  <dewar@adacore.com>
16565
16566         * usage.adb: Minor adjustment to output format, use nn instead of nnn
16567         (so that -gnateInnn does not run into next column)
16568
16569 2005-11-14  Ed Falis  <falis@adacore.com>
16570
16571         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
16572         "constrained"
16573
16574 2005-11-14  Cyrille Comar  <comar@adacore.com>
16575
16576         * s-chepoo.ads: Add comments on Dereference.
16577         Remove unnecessary inherited abstract primitives.
16578         Cosmetic cleanup.
16579
16580 2005-11-14  Robert Dewar  <dewar@adacore.com>
16581
16582         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
16583         node parameter, not needed, since it is available as Declaration_Node.
16584
16585 2005-11-14  Geert Bosch  <bosch@adacore.com>
16586
16587         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
16588         grammatically correct.
16589
16590 2005-11-14  Vincent Celier  <celier@adacore.com>
16591
16592         * s-fileio.ads: Correct spelling error in comment
16593
16594 2005-11-14  Cyrille Comar  <comar@adacore.com>
16595             Robert Dewar  <dewar@adacore.com>
16596             Vincent Celier  <celier@adacore.com>
16597             Ben Brosgol  <brosgol@adacore.com>
16598             Jose Ruiz  <ruiz@adacore.com>
16599             Pascal Obry  <obry@adacore.com>
16600
16601         * gnat_ugn.texi: 
16602         Document that -fstack-check is needed for strict compliance with the
16603         Ada 95 Reference Manual.
16604         Correct reference to VAX systems to meet HP guidelines
16605         Add documentation for new gnatmake switches -vl, -vm and -vh
16606         Replace DEC Ada by HP Ada
16607         Replace DIGITAL by HP
16608         Remove empty section on tools in compatibility section
16609         Clarify the Windows convention semantics.
16610         Document the Win32 calling convention.
16611         The Stdcall, Win32 and DLL convention are synonyms.
16612         Add a note in -gnatR description about zero size record components
16613         Note on new >= and <= warnings for -gnatwc
16614         Document that equal sign after -gnatm is optional.
16615         Note that strip is working fine on DLL built with a Library
16616         Project. The restriction apply only to DLL built with gnatdll.
16617         Update section about the way to debug a DLL.
16618         Update information about the DLL convention.
16619         Document -C switch for gnatprep
16620         Document new attribute Library_ALI_Dir
16621         Update elaboration doc to include implicit Elaborate pragmas now
16622         generated for subprogram instantiations.
16623         Document limitation on executable names that include spaces for --GCC,
16624         --GNATBIND, and --GNATLINK switches.
16625         Document that -w causes -gnatws to be added at start of gcc switches
16626
16627         * gnat_rm.texi: Document that -mieee is needed for generating infinite
16628         and NaN values in case of overflow on machines that are not fully
16629         compliant with the IEEE floating-point standard.
16630         Create a section describing the set of compiler options needed for
16631         strict compliance with the Ada 95 Reference Manual.
16632         Add documentation for pragma Obsolescent applied to a package
16633         Clarify potential issues of mixed language programs related to the
16634         I/O buffering enabling in the elaboration of the GNAT runtime.
16635         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
16636         This documentation only patch adds extra documentsion for pragma
16637         Restrictions (No_Elaboration_Code), explaining why it is not possible
16638         to document this restriction in terms of allowed source constructs.
16639         Document string literal form of pragma Warnings
16640         Document new attribute Library_ALI_Dir
16641         Add documentation on stable attributes in project files that was missing
16642
16643         * gnat-style.texi: Indicate that paragraphs within a single comment
16644         should be separated by empty comment lines
16645
16646         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
16647         /05 respectively)
16648
16649         * bindusg.adb: Minor cleanup, put -m before -M for consistency
16650
16651 2005-11-14  Robert Dewar  <dewar@adacore.com>
16652
16653         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
16654         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
16655         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
16656         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
16657         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
16658         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
16659         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
16660         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
16661         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
16662         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
16663         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
16664         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
16665         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
16666         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
16667         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
16668         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
16669         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
16670         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
16671         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
16672         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
16673         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
16674         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
16675         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
16676         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
16677         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
16678         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
16679         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
16680         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
16681         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
16682         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
16683         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
16684         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
16685         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
16686         system-interix.ads, system-solaris-sparc.ads,
16687         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
16688         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
16689         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
16690         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
16691         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
16692         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
16693         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
16694         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
16695         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
16696         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
16697         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
16698         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
16699         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
16700         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
16701         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
16702         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
16703         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
16704         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
16705         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
16706         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
16707         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
16708         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
16709         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
16710         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
16711         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
16712         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
16713         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
16714         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
16715         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
16716         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
16717         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
16718         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
16719         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
16720         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
16721         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
16722         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
16723         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
16724         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
16725         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
16726         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
16727         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
16728         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
16729         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
16730         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
16731         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
16732         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
16733         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
16734         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
16735         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
16736         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
16737         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
16738         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
16739         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
16740         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
16741         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
16742         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
16743         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
16744         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
16745         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
16746         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
16747         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
16748         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
16749         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
16750         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
16751         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
16752         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
16753         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
16754         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
16755         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
16756         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
16757         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
16758         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
16759         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
16760         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
16761         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
16762         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
16763         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
16764         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
16765         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
16766         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
16767         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
16768         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
16769         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
16770         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
16771         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
16772         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
16773         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
16774         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
16775         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
16776         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
16777         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
16778         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
16779         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
16780         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
16781         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
16782         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
16783         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
16784         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
16785         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
16786         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
16787         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
16788         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
16789         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
16790         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
16791         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
16792         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
16793         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
16794         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
16795         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
16796         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
16797         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
16798         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
16799         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
16800         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
16801         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
16802         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
16803         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
16804         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
16805         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
16806         a-numaux-darwin.ads, a-numaux-darwin.adb,
16807         a-swuwha.ads, a-stunha.ads: Minor reformatting
16808
16809 2005-11-14  Robert Dewar  <dewar@adacore.com>
16810
16811         PR ada/18434
16812         * osint-m.adb: Add pragma Elaborate_All for Osint
16813
16814 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
16815
16816         PR ada/23995
16817         * trans.c (call_to_gnu): Restore statement lost in translation.
16818
16819 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
16820
16821         * init.c: Use the Linux-specific section for the IA-64/Linux target.
16822         (__gnat_adjust_context_for_raise): Add conditional code so that the
16823         IA-64 is also supported.
16824
16825 2005-11-03  James E Wilson  <wilson@specifix.com>
16826
16827         PR ada/23427
16828         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
16829         TREE_OVERFLOW check.
16830
16831 2005-09-21  Olivier Hainque  <hainque@adacore.com>
16832
16833         PR ada/22418
16834         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
16835         as we create them to store a size in bits.
16836
16837 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
16838
16839         PR ada/21937
16840         PR ada/22328
16841         PR ada/22381
16842         PR ada/22383
16843         PR ada/22419
16844         PR ada/22420
16845         * utils2.c (build_return_expr): New helper function.
16846         * gigi.h (build_return_expr): Declare it.
16847         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
16848         of manually building the RETURN_EXPR tree.
16849         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
16850         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
16851         build_binary_op for the "target pointer" case.  Use build_return_expr
16852         instead of manually building the RETURN_EXPR tree.
16853
16854 2005-09-16  Laurent Guerby  <laurent@guerby.net>
16855
16856         PR ada/23788
16857         * s-tpinop.ads: Make this unit Preelaborate.
16858
16859 2005-09-16  Andreas Jaeger  <aj@suse.de>
16860
16861         * socket.c: Add string.h for memcpy.
16862
16863 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
16864
16865         * dec-io.ads, dec-io.adb: Removed, no longer used.
16866
16867 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
16868
16869         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
16870
16871         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
16872         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
16873         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
16874         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
16875         dependent units are Preelaborate.
16876         (Initialize): Call Interrupt_Managemeent.Initialize and
16877         OS_Primitives.Initialize to ensure proper initialization of this unit.
16878         Remove use of System.Soft_Links
16879         Make this unit Preelaborate.
16880
16881         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
16882         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
16883         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
16884         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
16885         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
16886         s-tratas.ads, s-tasinf.ads: Minor reformatting.
16887         Add pragma Preelaborate, since these packages are suitable for this
16888         categorization.
16889         Update comments.
16890
16891         * s-traent-vms.ads, s-intman-dummy.adb,
16892         s-taprop-dummy.adb: Make this unit Preelaborate.
16893
16894         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
16895         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
16896         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
16897         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
16898         s-intman-solaris.adb, s-intman-irix-athread.adb,
16899         s-intman-irix.adb: Mark this unit Preelaborate.
16900         (Initialize): New procedure.
16901         Update comments.
16902
16903         * s-taspri-linux.ads: Removed.
16904
16905         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
16906         as done by other implementations (e.g. posix).
16907
16908         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
16909         responsible for deferring abort.
16910         Mark this unit Preelaborate.
16911
16912         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
16913         proper initialization of the tasking run-time.
16914
16915         * s-tasdeb.ads: Mark this unit Preelaborate.
16916         (Known_Tasks): Add explicit default value to avoid elaboration code.
16917
16918         * s-inmaop-vms.adb (Elaboration code): Add call to
16919         Interrupt_Management.Initialize since the elaboration code depends on
16920         proper initialization of this package.
16921
16922         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
16923         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
16924         s-osprim-posix.adb: Make this unit Preelaborate.
16925
16926         * a-calend.adb: Add call to OS_Primitives.Initialize
16927
16928         * a-elchha.adb: Update use of Except.Id.Full_Name.
16929         Minor reformatting.
16930         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
16931
16932         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
16933         Move with clauses outside Warnings Off now that dependent units are
16934         Preelaborate.
16935         Use raise xxx with "..."; Ada 2005 form.
16936
16937         * a-taside.ads, a-taside.adb:
16938         Remove some dependencies, to make it easier to make this unit truly
16939         Preelaborate.
16940         Rewrite some code to be conformant with Preelaborate rules.
16941
16942         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
16943         marked Preelaborate in the future.
16944
16945         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
16946         these units Preelaborate.
16947
16948         * s-exctab.adb: Update use of Except.Id.Full_Name.
16949
16950         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
16951         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
16952         Set_Exc_Stack_Addr): Removed, no longer used.
16953         Remove reference to *Machine_State_Addr*, no longer needed.
16954
16955         * s-stalib.ads: Mark this unit as Preelaborate[_05].
16956         (Exception_Data): Full_Name is now a System.Address so that this unit
16957         can be made Preelaborate.
16958         Clean up/simplify code thanks to Full_Name being a System.Address.
16959         Remove obsolete pragma Suppress (All_Checks), no longer needed.
16960
16961         * s-taskin.ads, s-taskin.adb:
16962         Move with clauses outside Warnings Off now that dependent units are
16963         Preelaborate.
16964         Make this unit Preelaborate.
16965         (Initialize): New proceduure, replace elaboration code and makes the
16966         set up of the tasking run-time cleaner.
16967         (Detect_Blocking): Now a function instead of a deferred boolean, to
16968         obey Preelaborate rules.
16969
16970         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
16971         soft links, no longer used.
16972
16973         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
16974         packages are suitable for this categorization.
16975
16976         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
16977         since we compile run-time sources in Ada 2005 mode.
16978         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
16979         avoid having s-taprop*.adb depend on s-soflin and to avoid code
16980         duplication.
16981         Remove reference to *Machine_State_Addr*, no longer needed.
16982
16983 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
16984
16985         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
16986         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
16987         Remove reference to System.Exceptions.
16988
16989         * s-mastop-x86.adb: Removed, no longer used.
16990
16991         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
16992
16993         * a-excach.adb: Minor reformatting.
16994
16995         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
16996         instead fix new warnings that were hidden by this change.
16997         (AAA, ZZZ): Removed, replaced by...
16998         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
16999         are used instead of constants, to help make Ada.Exception truly
17000         preelaborate.
17001         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
17002         Raise_Storage_Error): File is now a System.Address, to simplify code.
17003         (Elab code): Removed, no longer used.
17004         (Null_Occurrence): Remove Warnings Off and make this construct
17005         preelaborate.
17006         Remove code related to front-end zero cost exception handling, since
17007         it is no longer used.
17008         Remove -gnatL/-gnatZ switches.
17009
17010         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
17011         Update use of Except.Msg.
17012
17013         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
17014         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
17015         to front-end zero cost exception handling, since it is no longer used.
17016         Remove -gnatL/-gnatZ switches.
17017
17018         * lib-writ.ads: Minor reformatting
17019         Remove doc of UX
17020
17021         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
17022
17023         * Make-lang.in: Remove references to s-except.ads
17024
17025         * s-except.ads: Removed, no longer used.
17026
17027         * s-mastop.ads, s-mastop.adb:
17028         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
17029         Remove reference to System.Exceptions.
17030
17031         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
17032         switch-b.adb: Remove code related to front-end zero cost exception
17033         handling, since it is no longer used.
17034         Remove -gnatL/-gnatZ switches.
17035
17036 2005-09-01  Robert Dewar  <dewar@adacore.com>
17037             Gary Dismukes  <dismukes@adacore.com>
17038             Javier Miranda  <miranda@adacore.com>
17039
17040         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
17041         type by valid test and generate warning.
17042         (Tagged_Membership): Generate call to the run-time
17043         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
17044         Change formal name Subtype_Mark to Result_Definition in several calls to
17045         Make_Function_Specification.
17046         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
17047         check for proper accessibility of the operand of a class-wide allocator.
17048         The check can be left out if checks are suppressed or if the expression
17049         has a specific tagged type whose level is known to be safe.
17050
17051         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
17052         generates the run-time check associated with null-excluding entities.
17053         (Expand_N_Return_Statement): Add tests to determine if the accessibility
17054         check on the level of the return expression of a class-wide function
17055         can be elided. The check usually isn't needed if the expression has a
17056         specific type (unless it's a conversion or a formal parameter). Also
17057         add a test for whether accessibility checks are suppressed. Augment
17058         the comments to describe the conditions for performing the check.
17059
17060 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
17061             Javier Miranda  <miranda@adacore.com>
17062             Gary Dismukes  <dismukes@adacore.com>
17063             Ed Schonberg  <schonberg@adacore.com>
17064
17065         * a-tags.adb (IW_Membership): Give support to
17066         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
17067         subprogram has been extended to look for the tag in the ancestors tag
17068         table.
17069         Update the structure of the GNAT Dispatch Table to reflect the
17070         additional two tables used in dispatching selects.
17071         Introduce appropriate array types and record components in
17072         Type_Specific_Data to reflect the two tables.
17073         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
17074         the TSD of a tag, indexed by position.
17075         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
17076         operation kind in the TSD of a tag, indexed by position.
17077
17078         * a-tags.ads: Introduce an enumeration type to capture different
17079         primitive operation kinds. Define a constant reflecting the number of
17080         predefined primitive operations.
17081         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
17082         of an entry wrapper.
17083         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
17084         callable entity of a primitive operation.
17085
17086         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
17087         primitive operations used in dispatching selects for limited
17088         interfaces, limited tagged, task and protected types what implement a
17089         limited interface.
17090         (Freeze_Type): Generate the bodies of the primitive operations used in
17091         dispatching selects for limited tagged, task and protected types that
17092         implement a limited interface. Generate statements to populate the two
17093         auxiliary tables used for dispatching in select statements.
17094         (Freeze_Record_Type): Add call to initialize the dispatch table entries
17095         associated with predefined interface primitive operations.
17096         (Build_Dcheck_Function): Change Set_Subtype_Mark to
17097         Set_Result_Definition.
17098         (Build_Variant_Record_Equality): Change Subtype_Mark to
17099         Result_Definition.
17100         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
17101         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
17102         (Build_Assignment): Simplify the code that adds the run-time-check.
17103         (Expand_N_Object_Declaration): Code cleanup.
17104
17105         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
17106         entries when there is a protected type that implements a limited
17107         interface.
17108
17109         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
17110         common routines used in expansion of dispatching selects.
17111         (Add_Private_Declarations): Select the appropriate protection type when
17112         there is a protected type that implements a limited interface.
17113         (Build_Parameter_Block): Generate a wrapped parameter block.
17114         (Build_Protected_Subprogram_Body): Select the appropriate type for
17115         locking entries when there is a protected type that implements a
17116         limited interface.
17117         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
17118         classified as entry wrappers.
17119         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
17120         asynchronous selects.
17121         (Expand_N_Conditional_Entry_Call): Add support for expansion of
17122         dispatching conditional selects.
17123         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
17124         protection when there is a protected type that implements limited
17125         interfaces.
17126         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
17127         timed selects.
17128         (Extract_Dispatching_Call): Extract the entity of the name of a
17129         dispatching call, the object parameter, actual parameters and
17130         corresponding formals.
17131         (Make_Initialize_Protection): Correct logic of protection initialization
17132         when there is a protected type that implements a limited interface.
17133         (Parameter_Block_Pack): Populate a wrapped parameter block with the
17134         values of actual parameters.
17135         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
17136         block and assign them to the original actual parameters.
17137
17138         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
17139         (Build_Protected_Sub_Specification): Change the type and name of the
17140         last formal to account for the increased variety of protection modes.
17141
17142         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
17143         entities. Used to save the value of the Is_Hidden attribute when the
17144         limited-view is installed.
17145         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
17146         the attribute of procedures classified as entry wrappers.
17147         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
17148         entity of a primitive wrapper.
17149         (Write_Entity_Flags): Output the name and value of the
17150         Is_Primitive_Wrapper attribute.
17151         (Write_Field27_Name): Output the name and entity of the field Wrapped_
17152         Entity.
17153         (Underlying_Type): If we have an incomplete entity that comes from
17154         the limited view then we return the Underlying_Type of its non-limited
17155         view if it is already available.
17156         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
17157         including operators.
17158         (Write_Field26_Name): Add entry for Overridden_Operation
17159         (Overridden_Operation): New attribute of functions and procedures.
17160
17161         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
17162         predefined position in the dispatch table for the primitive operations
17163         used in dispatching selects.
17164         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
17165         predefined primitive operations and replace it with
17166         Default_Prim_Op_Count.
17167         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
17168         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
17169         the names of the generated primitive operations used in dispatching
17170         selects.
17171         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
17172         case of abstract interface types. They will be inherit by the objects
17173         implementing the interface.
17174         (Make_DT): There is no need to inherit the dispatch table of the
17175         ancestor interface for the elaboration of abstract interface types.
17176         The dispatch table will be inherited by the object implementing the
17177         interface.
17178         (Copy_Secondary_DTs): Add documentation.
17179         (Validate_Position): Improve this static check in case of
17180         aliased subprograms because aliased subprograms must have
17181         the same position.
17182         (Init_Predefined_Interface_Primitives): New subprogram that initializes
17183         the entries associated with predefined primitives of all the secondary
17184         dispatch tables.
17185         (Build_Anonymous_Access_Type): Removed.
17186         (Expand_Interface_Actuals): With the previous cleanup there is no need
17187         to build an anonymous access type. This allows further cleanup in the
17188         code generated by the expander.
17189         (Expand_Interface_Conversion): If the actual is an access type then
17190         build an internal function to handle the displacement. If the actual
17191         is null this function returns null because no displacement is
17192         required; otherwise performs a type conversion that will be
17193         expanded in the code that returns the value of the displaced actual.
17194         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
17195         conversions that have no effect in the generated code because no
17196         displacement is required. Code cleanup; use local variables to
17197         avoid repeated calls to the subprogram directly_designated_type().
17198
17199         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
17200         Classify the primitive operations used in dispatching selects as
17201         predefined.
17202         (Implements_Limited_Interface): Determine whether some type either
17203         directly implements a limited interface or extends a type that
17204         implements a limited interface.
17205         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
17206         (Expand_Subtype_From_Expr): Do not build actual subtype if the
17207         expression is limited.
17208         (Find_Interface_Tag): Add code to handle class-wide types and
17209         entities from the limited-view.
17210
17211         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
17212         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
17213         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
17214         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
17215         Set_Prim_Op_Kind.
17216
17217         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
17218         of procedure name or prefix that appears as a trigger in a triggering
17219         alternative.
17220
17221         * uintp.ads: Introduce constants Uint_11 and Uint_13.
17222
17223 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
17224
17225         * s-tataat.adb, a-tasatt.adb:
17226         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
17227
17228         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
17229         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
17230         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
17231         longer used.
17232
17233 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
17234             Jose Ruiz  <ruiz@adacore.com>
17235
17236         * s-taprop-vxworks.adb:
17237         Move with clauses outside Warnings Off now that dependent units are
17238         Preelaborate.
17239         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
17240         initialization of this unit.
17241         (Specific): Add new procedures Initialize and Delete so that this
17242         package can be used for VxWorks 5.x and 6.x
17243         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
17244         differences between VxWorks 5.x and 6.x
17245         Minor reformatting.
17246         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
17247         caller.
17248         Use only Preelaborate-compatible constructs.
17249
17250         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
17251         Primitives.Operations.
17252         (Delete, Initialize): New procedures.
17253
17254         * s-osinte-vxworks.adb: Body used to handle differences between
17255         VxWorks 5.x and 6.x
17256         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
17257
17258         * s-osinte-vxworks.ads: Minor reformatting.
17259         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
17260         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
17261         and 6.
17262         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
17263         between Vxworks 5 and 6.
17264         (taskLock, taskUnlock): Removeed, no longer used.
17265
17266         * adaint.c: The wait.h header is not located in the sys directory on
17267         VxWorks when using RTPs.
17268         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
17269         using RTPs.
17270         (__gnat_dup): dup is available on Vxworks when using RTPs.
17271         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
17272
17273         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
17274
17275         * expect.c: The wait.h header is not located in the sys directory on
17276         VxWorks when using RTPs.
17277
17278 2005-09-01  Thomas Quinot  <quinot@adacore.com>
17279
17280         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
17281
17282         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
17283
17284         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
17285         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
17286         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
17287         g-soccon-freebsd.ads: Add new constants:
17288          IP_MULTICAST_IF
17289          SO_RCVTIMEO/SO_SNDTIMEO
17290          IOV_MAX
17291
17292         * gen-soccon.c:
17293         Move all target-specific file inclusions and macro definitions to
17294         gsocket.h, in order to ensure that any C code in socket.c will see a
17295         set of constants that is consistent with the contents of g-soccon.ads.
17296
17297         * gsocket.h: Code imported from gen-soccon.c:
17298         Move all target-specific file inclusions and macro definitions to
17299         gsocket.h, in order to ensure that any C code in socket.c will see a set
17300         of constants that is consistent with the contents of g-soccon.ads.
17301         This change also makes gen-soccon self-contained (removing dependencies
17302         upon GCC internal headers).
17303
17304         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
17305         iovecs at a time.
17306         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
17307
17308         * socket.c: Minor reformatting.
17309
17310 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17311             Thomas Quinot  <quinot@adacore.com>
17312
17313         * fname-sf.adb, mlib-tgt.ads,
17314         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
17315         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
17316         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
17317         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
17318         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
17319         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
17320         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
17321         makegpr.adb: Remove redundant use_clauses.
17322
17323 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
17324
17325         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
17326         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
17327         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
17328         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
17329         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
17330         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
17331         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
17332         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
17333         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
17334         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
17335         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
17336         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
17337         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
17338         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
17339         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
17340         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
17341         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
17342         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
17343         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
17344         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
17345         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
17346         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
17347         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
17348         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
17349         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
17350         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
17351         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
17352         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
17353         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
17354         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
17355         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
17356         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
17357         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
17358         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
17359         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
17360         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
17361         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
17362         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
17363         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
17364         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
17365         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
17366         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
17367         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
17368         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
17369         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
17370         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
17371         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
17372         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
17373         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
17374         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
17375         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
17376         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
17377         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
17378         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
17379         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
17380         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
17381         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
17382         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
17383         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
17384         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
17385         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
17386         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
17387         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
17388         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
17389         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
17390         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
17391         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
17392         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
17393         and always use the no parameter form for consistency.
17394
17395         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
17396
17397 2005-09-01  Robert Dewar  <dewar@adacore.com>
17398
17399         * binde.adb: Minor reformatting
17400         (Find_Elab_Order): Output warning if -p used with static elab order
17401
17402 2005-09-01  Robert Dewar  <dewar@adacore.com>
17403
17404         * checks.adb (Check_Needed): New procedure, deals with removing checks
17405         based on analysis of short-circuited forms. Also generates warnings for
17406         improper use of non-short-circuited forms.
17407         Code clean ups.
17408
17409 2005-09-01  Robert Dewar  <dewar@adacore.com>
17410
17411         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
17412         with 'Valid tests.
17413
17414 2005-09-01  Robert Dewar  <dewar@adacore.com>
17415
17416         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
17417         spec.
17418         Implement new insertion char < (conditional warning)
17419         * errutil.adb, erroutc.adb: Implement new insertion char <
17420         (conditional warning).
17421         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
17422         (Error_Msg_Warn): New variable for < insertion char.
17423         * prj-nmsc.adb: Implement new errout insertion char < (conditional
17424         warning).
17425         (Check_For_Source): Change value of Source_Id only after the current
17426         source has been dealt with.
17427
17428 2005-09-01  Robert Dewar  <dewar@adacore.com>
17429             Doug Rupp  <rupp@adacore.com>
17430
17431         * exp_attr.adb: Handle vax fpt for 'Valid attribute
17432         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
17433         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
17434         (Valid_D, Valid_F, Valid_G): New functions
17435
17436 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17437             Hristian Kirtchev  <kirtchev@adacore.com>
17438             Javier Miranda  <miranda@adacore.com>
17439
17440         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
17441         from object notation, the original node is unanalyzed and carries no
17442         semantic information, so that accessiblity checks must be performed on
17443         the type of the actual itself.
17444         (Expand_N_Subprogram_Declaration): Change last actual parameter for
17445         compatibility with Build_Protected_Sub_Specification.
17446         (Check_Overriding_Inherited_Interfaces): Add suport to handle
17447         overloaded primitives.
17448         (Register_Interface_DT_Entry): Use the new name of the formal
17449         the the calls to Expand_Interface_Thunk
17450
17451         * exp_dbug.ads: Augment comments on encoding of protected types to
17452         include the generation of dispatching subprograms when the type
17453         implements at least one interface.
17454
17455         * lib.ads: Extend information in Load_Stack to include whether a given
17456         load comes from a Limited_With_Clause.
17457
17458         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
17459         whether a potential circularity is harmless, because it includes units
17460         loaded through a limited_with clause. Extends previous treatment which
17461         did not handle properly arbitrary combinations of limited and
17462         non-limited clauses.
17463
17464 2005-09-01  Nicolas Setton  <setton@adacore.com>
17465
17466         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
17467         to be encoded as typ___XBLU_lowerbound__upperbound instead of
17468         typ___XB_lowerbound__upperbound.
17469
17470 2005-09-01  Thomas Quinot  <quinot@adacore.com>
17471
17472         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
17473         dummy access formal for RACW/RAS TypeCode TSS.
17474         (Build_TypeCode_Call): Do not generate dummy null access actual for
17475         calls to the TypeCode TSS.
17476
17477 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17478
17479         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
17480         fully qualified name, to distinguish instances with the same local name.
17481
17482         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
17483         fully qualified.
17484
17485 2005-09-01  Robert Dewar  <dewar@adacore.com>
17486
17487         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
17488         packed arrays.
17489
17490 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
17491
17492         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
17493         (Free): New deallocation procedure for filter elements
17494         (Close): Deallocate any existing filter for the concerned connection
17495
17496 2005-09-01  Laurent Pautet  <pautet@adacore.com>
17497
17498         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
17499         position set is provided, we compute one in order to reduce the maximum
17500         length of the keys.  This computation first selects a character
17501         position between 1 and the minimum length of the keys in order to
17502         avoid reducing one of the keys to an empty string.
17503         (Initialize, Compute): When the ratio V to K is too low, the algorithm
17504         does not converge. The initialization procedure now comes with a
17505         maximum number of iterations such that when exceeded, an exception is
17506         raised in Compute. The user can initialize this ratio to another value
17507         and try again
17508         Reformating and updated headers.
17509
17510 2005-09-01  Javier Miranda  <miranda@adacore.com>
17511
17512         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
17513         that given an entity T creates and returns an Itype that duplicates the
17514         contents of T. The returned Itype has the null-exclusion
17515         attribute set to True, and its Etype attribute references T
17516         to keep the association between the two entities.
17517         Update copyright notice
17518
17519         * sem_aggr.adb (Check_Can_Never_Be_Null,
17520         Aggregate_Constraint_Checks, Resolve_Aggregate,
17521         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
17522
17523         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
17524
17525 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
17526             Robert Dewar  <dewar@adacore.com>
17527             Hristian Kirtchev  <kirtchev@adacore.com>
17528
17529         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
17530         Result_Definition.
17531
17532         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
17533         function specs.
17534         Call Set_Result_Definition instead of Set_Subtype_Mark.
17535         (P_Subprogram_Specification): Add parsing of anonymous access result
17536         plus null exclusions. Call Set_Result_Definition instead of
17537         Set_Subtype_Mark.
17538
17539         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
17540         (P_Access_Type_Definition): Add parsing for an anonymous access result
17541         subtype, plus parsing for null exclusions. Call Set_Result_Definition
17542         instead of Set_Subtype_Mark.
17543
17544         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
17545         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
17546         (Result_Definition): New function for N_Function_Specifications.
17547         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
17548         N_Function_Specification.
17549         (Set_Null_Exclusion_Present): Allow this flag for
17550         N_Function_Specification.
17551         (Set_Result_Definition): New procedure for N_Function_Specifications.
17552         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
17553         and N_Function_Specification.
17554
17555         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
17556         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
17557         Add support for LIMITED NEW for Ada 2005 AI-419
17558         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
17559         syntax for anonymous access results.
17560         Replace Subtype_Mark field by Result_Definition in
17561         N_Function_Specification and N_Access_Definition specs.
17562         Add Null_Exclusion_Present to spec of N_Function_Specification.
17563         (Result_Definition): New function for N_Function_Specification and
17564         N_Access_Function_Definition.
17565         (Set_Result_Definition): New procedure for N_Function_Specification and
17566         N_Access_Function_Definition.
17567
17568         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
17569         Result_Definition for cases of N_Access_Function_Definition and
17570         N_Function_Specification.
17571         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
17572
17573 2005-09-01  Vincent Celier  <celier@adacore.com>
17574
17575         * lib-writ.adb: Update Copyright notice
17576         (Write_With_Lines): On platforms where file names are case-insensitive,
17577         record the file names in lower case.
17578         (Write_ALI): For D lines, on platforms where file names are
17579         case-insensitive, record the file names in lower case.
17580
17581 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17582             Emmanuel Briot  <briot@adacore.com>
17583
17584         * lib-xref.adb (Output_Overridden_Op): Display information on
17585         overridden operation.
17586
17587         * lib-xref.ads: Add documentation on overridden operations.
17588
17589         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
17590         information.
17591
17592         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
17593         overriding entity information.
17594
17595 2005-09-01  Vincent Celier  <celier@adacore.com>
17596
17597         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
17598         including those that are inherited.
17599
17600 2005-09-01  Robert Dewar  <dewar@adacore.com>
17601
17602         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
17603
17604         * par-prag.adb: Implement new pragma Debug_Policy
17605
17606         * sem_prag.adb Implement new pragma Debug_Policy
17607         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
17608         Component_Size attribute specification. Give warning for ignored pragma
17609         Pack.
17610
17611         * snames.h, snames.ads, snames.adb: Introduce entries in
17612         Preset_Names for Name_Disp_Asynchronous_Select,
17613         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
17614         Name_Disp_Timed_Select.
17615         New pragma Debug_Policy
17616
17617         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
17618         explicitly.
17619         Switch -gnata also sets Debug_Pragmas_Enabled
17620
17621         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
17622         handle an explicit -gnata when compiling predefined files.
17623
17624 2005-09-01  Vincent Celier  <celier@adacore.com>
17625
17626         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
17627         directories of projects that have no Ada sources.
17628
17629 2005-09-01  Robert Dewar  <dewar@adacore.com>
17630
17631         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
17632         (makes a difference for wide characters)
17633
17634         * widechar.adb, widechar.ads:
17635         Add Wide_Char_Byte_Count feature to count chars vs bytes
17636
17637 2005-09-01  Thomas Quinot  <quinot@adacore.com>
17638             Ed Schonberg  <schonberg@adacore.com>
17639             Robert Dewar  <dewar@adacore.com>
17640
17641         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
17642         'Address attribute reference with an overloaded prefix, use the
17643         location of the prefix (not the location of the attribute reference) as
17644         the error location.
17645         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
17646         a function renaming thereof, is a valid prefix for 'Size (where it is
17647         intepreted as a function call).
17648         (Statically_Denotes_Entity): New predicate to determine whether the
17649         prefix of an array attribute can be considered static.
17650
17651         PR ada/9087
17652         (Eval_Attr): Fix failure to evaluate Component_Size for
17653         unconstrained arrays (resulted in wrong value in packed case, since
17654         back end cannot handle this case)
17655
17656 2005-09-01  Robert Dewar  <dewar@adacore.com>
17657
17658         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
17659         error msgs for most common cases.
17660         Use new errout insertion char < (conditional warning)
17661
17662 2005-09-01  Javier Miranda  <miranda@adacore.com>
17663             Ed Schonberg  <schonberg@adacore.com>
17664
17665         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
17666         become local to the whole package.
17667         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
17668         the package was already analyzed the new algorithm "replaces" the
17669         real entities by the shadow ones. This is required to ensure that
17670         the order of these entities in the homonym chains does not change;
17671         otherwise we can have undefined references at linking time because
17672         in case of conflicts the external name of the entities will have
17673         a suffix that depends on the order of the entities in the chain.
17674         (Remove_Limited_With_Clause): Complementary code that completes the
17675         new algorithm and replaces the shadow entities by the real ones.
17676         (Install_Limited_Withed_Unit): When unchaining entities before the
17677         installation of the shadow entities, only regular entities of the
17678         public part must be taken into account. This is required to
17679         keep this routine in synch with the work done by Remove_Limited_
17680         With_Clause
17681         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
17682         even if unit is analyzed, because the analysis of the unit is
17683         idempotent in any case, and the limited view of the unit may have to
17684         be installed for proper visibility.
17685         (Expand_Limited_With_Clause): Even if the unit in the implicit
17686         with_clause has been analyzed already, a limited view of the package
17687         must be built for the current context, if it does not exist yet.
17688
17689 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17690             Javier Miranda  <miranda@adacore.com>
17691             Gary Dismukes  <dismukes@adacore.com>
17692
17693         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
17694         defining entity for the instance body, make a new defining identifier
17695         rather than copying the entity of the spec, to prevent accidental
17696         sharing of the entity list.
17697         (Check_Private_View): When exchanging views of private types, build the
17698         list of exchanged views as a stack, to ensure that on exit the exchanges
17699         are undone in the proper order.
17700         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
17701         Restore the compilation environment in case of instantiation_error.
17702         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
17703         for an anonymous access result.
17704         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
17705         (Formal_Entity): Handle properly the case of a formal package that
17706         denotes a generic package renaming.
17707
17708 2005-09-01  Thomas Quinot  <quinot@adacore.com>
17709
17710         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
17711         clause if the array aggregate is surrounded by parentheses.
17712
17713 2005-09-01  Cyrille Comar  <comar@adacore.com>
17714             Gary Dismukes  <dismukes@adacore.com>
17715             Ed Schonberg  <schonberg@adacore.com>
17716             Javier Miranda  <miranda@adacore.com>
17717
17718         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
17719         underlying type
17720         to check if a type is Constrained in cases related to code generation
17721         (rather than semantic checking) since otherwise we do not generate
17722         similar code for mutable private types depending if their
17723         discriminants are visible or not.
17724         (Check_Abstract_Overriding): Do not complain about failure to override
17725         the primitive operations used in dispatching selects since they will
17726         always be overriden at the freeze point of the type.
17727         (Access_Definition): Separate out handling for resetting the scope
17728         of an anonymous access function result type. Retrieve the scope
17729         of the associated function rather than using Current_Scope, which
17730         does not have a consistent value (depends on whether we're in the
17731         middle of analyzing formal parameters). Add ??? comment about
17732         finding a cleaner way to handle the special cases of scope setting.
17733         (Process_Incomplete_Dependents): A protected operation is never a
17734         dispatching operation (only its wrapper may be).
17735         (Build_Derived_Record_Type): In case of tagged private types that
17736         implement interfaces add derivation of predefined primitive
17737         operations.
17738         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
17739         by two parameters that are used in case of derivation from abstract
17740         interface types: No_Predefined_Prims is used to avoid the derivation
17741         of predefined primitives from the interface, and Predefined
17742         Prims_Only is used to complete the derivation predefined primitives
17743         in case of private tagged types implementing interfaces.
17744         Fix typo in comments
17745         (Find_Interface_In_Descendant): Protect the frontend against
17746         wrong code with large circularity chains.
17747         (Is_Private_Overriding): Add support for entities overriding interface
17748         subprograms. The test failed because Entities associated with overriden
17749         interface subprograms are always marked as hidden (and used to build
17750         the secondary dispatch table); in this case the overriden entity is
17751         available through the field abstract_interface_alias (cf. override_
17752         dispatching_operation)
17753         (Access_Definition): Set the scope of the type to Current_Scope for the
17754         case of a function with an anonymous access result type.
17755         (Access_Subprogram_Declaration): Handle creation of the type entity for
17756         an access-to-function type with an anonymous access result.
17757         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
17758         in handling for N_Access_Function_Definition.
17759         (Analyze_Subtype_Declaration): Modify the text of error message.
17760         (Derived_Type_Declaration): Modify the text of error message.
17761         (Process_Subtype): Modify the text of error message plus cleanup
17762         of one redundant error message.
17763         (Analyze_Component_Declaration): Code cleanup.
17764         (Analyze_Object_Declaration): Code cleanup.
17765         (Analyze_Subtype_Declaration): Propagate the null-exclusion
17766         attribute in case of access types. Code cleanup.
17767         (Array_Type_Declaration): Code cleanup.
17768         (Process_Discriminants): Create the new null-excluding itype
17769         if required. Code cleanup.
17770         (Process_Subtype): Create the new null-excluding itype if
17771         required. Code cleanup.
17772         (Build_Derived_Record_Type): Code cleanup to avoid calling
17773         twice the subprogram derive_subprograms in case of private
17774         types that implement interfaces. In this particular case the
17775         subprogram Complete_Subprograms_Derivation already does the
17776         job associated with the second call.
17777
17778         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
17779         conversion to the full view when generating an operation for a
17780         discriminant whose type may currently be private.
17781
17782 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17783             Javier Miranda  <miranda@adacore.com>
17784
17785         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
17786         V (Obj.F), the rewriting does not involve the indexed component, but
17787         only the selected component itself.
17788         Do not apply the transformation if the analyzed node is an actual of a
17789         call to another subprogram.
17790         (Complete_Object_Operation): Retain the entity of the
17791         dispatching operation in the selector of the rewritten node. The
17792         entity will be used in the expansion of dispatching selects.
17793         (Analyze_One_Call): Improve location of the error message associated
17794         with interface.
17795         (Analyze_Selected_Component): No need to resolve prefix when it is a
17796         function call, resolution is done when parent node is resolved, as
17797         usual.
17798         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
17799         when attempting to resolve a call transformed from its object notation.
17800         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
17801         of the argument list for each interpretation of the operation.
17802         (Try_Object_Operation): The designated type of an access parameter may
17803         be an incomplete type obtained through a limited_with clause, in which
17804         case the primitive operations of the type are retrieved from its full
17805         view.
17806         (Analyze_Call): If this is an indirect call, and the return type of the
17807         access_to_subprogram is incomplete, use its full view if available.
17808
17809 2005-09-01  Javier Miranda  <miranda@adacore.com>
17810             Gary Dismukes  <dismukes@adacore.com>
17811
17812         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
17813         access types the null-exclusion and access-to-constant attributes must
17814         also match.
17815         (Analyze_Return_Statement): When the result type is an anonymous access
17816         type, apply a conversion of the return expression to the access type
17817         to ensure that appropriate accessibility checks are performed.
17818         (Analyze_Return_Type): For the case of an anonymous access result type,
17819         generate the Itype and set Is_Local_Anonymous_Access on the type.
17820         Add ??? placeholder for check to disallow returning a limited object
17821         in Ada 2005 unless it's an aggregate or a result of a function call.
17822         Change calls from Subtype_Mark to Result_Definition.
17823         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
17824         Result_Definition in call to Make_Function_Specification.
17825         (Build_Body_To_Inline): Change Set_Subtype_Mark to
17826         Set_Result_Definition.
17827         (Make_Inequality_Operator): Change formal Subtype_Mark to
17828         Result_Definition in call to Make_Function_Specification.
17829         (Process_Formals): Create the new null-excluding itype if required.
17830         (New_Overloaded_Entity): For an entity overriding an interface primitive
17831         check if the entity also covers other abstract subprograms in the same
17832         scope. This is required to handle the general case, that is, overriding
17833         other interface primitives and overriding abstract subprograms inherited
17834         from some abstract ancestor type.
17835         (New_Overloaded_Entity): For an overriding entity that comes from
17836         source, note the operation that it overrides.
17837         (Check_Conformance, Type_Conformant): Addition of one new formal
17838         to skip controlling formals in the analysis. This is used to
17839         handle overloading of abstract interfaces.
17840         (Base_Types_Match): Add missing case for types imported from
17841         limited-with clauses
17842         (New_Overloaded_Entity): Add barrier to protect the use of
17843         the "alias" attribute.
17844
17845 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17846
17847         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
17848         verify that the procedure and the entry are mode conformant.
17849         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
17850         as a different operator, which is often a cut-and-paste error.
17851
17852 2005-09-01  Javier Miranda  <miranda@adacore.com>
17853             Ed Schonberg  <schonberg@adacore.com>
17854
17855         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
17856         used in controlling parameters exclude null because it is necessary to
17857         read the tag to dispatch, and null has no tag.
17858         (Override_Dispatching_Operation): If the previous operation is inherited
17859         from an interface, it becomes hidden  and does not participate in later
17860         name resolution.
17861
17862 2005-09-01  Javier Miranda  <miranda@adacore.com>
17863             Ed Schonberg  <schonberg@adacore.com>
17864             Gary Dismukes  <dismukes@adacore.com>
17865
17866         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
17867         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
17868         the expander will generate the corresponding run-time check to evaluate
17869         the expression.
17870         (Resolve_Call): Check for legal type of procedure name or prefix that
17871         appears as a trigger in a triggering alternative.
17872         (Valid_Conversion): If expression is ambiguous and the context involves
17873         an extension of System, remove System.Address interpretations.
17874         (Resolve_Qualified_Expression): Reject the case of a specific-type
17875         qualification applied to a class-wide argument. Enhance comment
17876         to explain checking of Original_Node.
17877         (Resolve_Type_Conversion): The location of the error message was not
17878         general enough to handle the general case and hence it has been removed.
17879         In addition, this patch improves the text of the message.
17880         (Resolve_Type_Conversion): Add missing support for access to interface
17881         types.
17882         (Resolve_Type_Conversion): If the target is a class-wide interface type,
17883         do not expand if the expression is the actual in a call, because proper
17884         expansion will take place when the call itself is expanded.
17885         (Resolve_Allocator): If the context is an unchecked conversion, the
17886         allocator inherits its storage pool, if any, from the target type of
17887         the conversion.
17888
17889 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17890             Javier Miranda  <miranda@adacore.com>
17891
17892         * sem_type.adb (Add_One_Interp): If a candidate operation is an
17893         inherited interface operation that has an implementation, use the
17894         implementation to avoid spurious ambiguities.
17895         (Interface_Present_In_Ancestor): In case of concurrent types we can't
17896         use the Corresponding_Record_Typ attribute to look for the interface
17897         because it is set by the expander (and hence it is not always
17898         available). For this reason we traverse the list of interfaces
17899         (available in the parent of the concurrent type).
17900         (Interface_Present_In_Ancestor): Handle entities from the limited view
17901
17902 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17903
17904         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
17905         from the list of required components.
17906         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
17907         primitive procedure of a limited interface with a controlling first
17908         parameter.
17909         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
17910         of an entry.
17911         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
17912         capture if it is generated in the second operand of a short-circuit
17913         operation.
17914         Do not capture values for variables with address clauses.
17915         (Is_Object_Reference): Treat a function call as an object reference only
17916         if its type is not Standard_Void_Type.
17917
17918 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17919
17920         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
17921         to a variable that is statically known to be constant.
17922
17923 2005-09-01  Geert Bosch  <bosch@adacore.com>
17924             Robert Dewar  <dewar@adacore.com>
17925
17926         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
17927         (VAXGF_Safe_First): Idem.
17928
17929 2005-09-01  Robert Dewar  <dewar@adacore.com>
17930             Arnaud Charlet  <charlet@adacore.com>
17931
17932         * g-dirope.ads: Minor reformatting
17933         Document that bounds of result of Base_Name match the input index
17934         positions.
17935         Add documentation on environment variable syntax for Expand_Path
17936
17937         * gnat_ugn.texi: Update documentation to include mention of -m switches
17938         Document new treatment of wide characters in max line length
17939         style check.
17940         Remove -gnatL/-gnatZ switches, no longer used.
17941         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
17942         of -gnata switch.
17943
17944         * gnat_rm.texi: Add doc for two argument form of pragma
17945         Float_Representation.
17946         Add documentation for pragma No_Strict_Aliasing
17947         Add note that explicit component clause overrides pragma Pack.
17948         Add documentation of pragma Debug_Policy
17949
17950 2005-09-01  Matthew Heaney  <heaney@adacore.com>
17951
17952         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
17953         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
17954         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
17955         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
17956         draft (Draft 13, August 2005) of Ada Amendment 1.
17957
17958 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
17959
17960         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
17961         Note that the platform-specific version of g-soccon.ads for VMS is now
17962         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
17963         really is a package spec).
17964         Replace s-taspri-linux.ads by s-taspri-posix.ads
17965         Remove references to s-mastop-x86.adb
17966
17967         * system-vxworks-xscale.ads: Removed, no longer used.
17968         * s-vxwork-xscale.ads: Removed, no longer used.
17969
17970 2005-09-01  Robert Dewar  <dewar@adacore.com>
17971
17972         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
17973         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
17974         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
17975         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
17976         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
17977         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
17978         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
17979         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
17980         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
17981         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
17982         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
17983         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
17984         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
17985         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
17986         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
17987         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
17988         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
17989         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
17990         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
17991         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
17992         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
17993
17994 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
17995
17996         PR ada/23187
17997         * adaint.c
17998         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
17999
18000 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
18001             Doug Rupp  <rupp@adacore.com>
18002
18003         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
18004         when needed.
18005         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
18006         this code in the GNAT run-time.
18007
18008         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
18009
18010         PR ada/21053
18011         * init.c (__gnat_error_handler [many]): Mark "msg" as const
18012         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
18013
18014         (__gnat_inside_elab_final_code): Moved here from
18015         Standard_Library and only defined for the compiler.
18016         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
18017         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
18018         using RTPs because directly vectored Interrupt routines are not
18019         supported on this configuration.
18020         (getpid): Do not redefine this function on VxWorks when using RTPs
18021         because this primitive is well supported by the RTP libraries.
18022         (copy_msg): Correct the code that checks for buffer overflow.
18023         Discovered during code reading.
18024
18025 2005-08-29  Olivier Hainque  <hainque@adacore.com>
18026
18027         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
18028         a library level mutable variable with an initializer, tell
18029         build_allocator to ignore the initializer's size. It may not be large
18030         enough for all the values that might be assigned to the variable later
18031         on.
18032
18033 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
18034             Eric Botcazou  <ebotcazou@adacore.com>
18035
18036         * trans.c: Protect < in error msg with quote
18037         Replace GCC_ZCX by Back_End_Exceptions.
18038         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
18039         has been sufficiently aligned in the record.
18040
18041 2005-08-15  James E. Wilson  <wilson@specifix.com>
18042
18043         * system-linux-alpha.ads: Change ia64 to alpha.
18044
18045 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
18046
18047         * decl.c, utils.c: Fix comment typos.
18048
18049 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
18050
18051         * decl.c, init.c, initialize.c: Fix comment typos.
18052
18053 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
18054
18055         Make CONSTRUCTOR use VEC to store initializers.
18056         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
18057         CONSTRUCTOR_ELTS.
18058         * trans.c (extract_values): Likewise.
18059         * utils.c (convert, remove_conversions): Likewise.
18060         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
18061         gnat_build_constructor): Likewise.
18062
18063 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
18064
18065         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
18066         DECL_SECTION_NAME.
18067         (compare_field_bitpos): Likewise.
18068
18069 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
18070
18071         * utils.c (create_var_decl): Only set DECL_COMMON on
18072         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
18073         VAR_OR_FUNCTION_DECL_P.
18074
18075 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
18076
18077         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
18078         removed.
18079
18080 2005-07-07  Pascal Obry  <obry@adacore.com>
18081
18082         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
18083         returned type on Windows.
18084
18085         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
18086         routine.
18087
18088         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
18089         exception in this case.
18090         Simplify the code as "Image (Image'Range)" = "Image".
18091
18092 2005-07-07  Vincent Celier  <celier@adacore.com>
18093
18094         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
18095         the destructor/constructor attributes for <lib>final/<lib>init.
18096
18097         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
18098
18099 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
18100
18101         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
18102         type if the parameter is not passed by copy but reference by default.
18103
18104 2005-07-07  Javier Miranda  <miranda@adacore.com>
18105
18106         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
18107         Reimplementation of the support for abstract interface types in order
18108         to leave the code more clear and easy to maintain.
18109
18110         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
18111         abstract interface types in order to leave the code clearer and easier
18112         to maintain.
18113
18114         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
18115         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
18116         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
18117         appropriate entry of the secondary dispatch table.
18118         (Make_DT): Add code to inherit the secondary dispatch tables of
18119         the ancestors.
18120
18121         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
18122         implementing both functionalities by means of a common routine, each
18123         routine has its own code.
18124
18125 2005-07-07  Javier Miranda  <miranda@adacore.com>
18126
18127         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
18128
18129         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
18130         types:
18131         --
18132           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
18133         --
18134
18135         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
18136         use of tag incomplete types.
18137
18138         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
18139         give support to tagged incomplete types.
18140
18141         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
18142         expression is a discriminant reference and its type is private, as can
18143         happen within a stream operation for a mutable record, use the full
18144         view of the type to resolve the case alternatives.
18145         (Analyze_Assignment): Check wrong dereference of incomplete types.
18146
18147         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
18148         types.
18149
18150         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
18151         incomplete types.
18152
18153         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
18154         N_Incomplete_Type_Declaration nodes.
18155
18156         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
18157         Tag_Present to give support to tagged incomplete types:
18158         --
18159           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
18160         --
18161
18162 2005-07-07  Olivier Hainque  <hainque@adacore.com>
18163
18164         PR ada/22301
18165         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
18166         definitions for the Unwind wrappers in the compiler case.
18167
18168 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
18169             Javier Miranda  <miranda@adacore.com>
18170
18171         * par-load.adb (Load): If a child unit is loaded through a limited_with
18172         clause, each parent must be loaded as a limited unit as well.
18173
18174         * sem_ch10.adb (Previous_Withed_Unit): Better name for
18175         Check_Withed_Unit. Return true if there is a previous with_clause for
18176         this unit, whether limited or not.
18177         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
18178         the current unit.
18179         (Is_Visible_Through_Renamings): New local subprogram of install_limited
18180         _withed_unit that checks if some package installed through normal with
18181         clauses has a renaming declaration of package whose limited-view is
18182         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
18183         of the current Draft document for Ada 2005.
18184         (Analyze_Context): Complete the list of compilation units that
18185         are allowed to contain limited-with clauses. It also contains
18186         checks that were previously done by Install_Limited_Context_Clauses.
18187         This makes the code more clear and easy to maintain.
18188         (Expand_Limited_With_Clause) It is now a local subprogram of
18189         Install_Limited_Context_Clauses, and contains the code that adds
18190         the implicit limited-with clauses for parents of child units.
18191         This functionality was prevously done by Analyze_Context.
18192
18193         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
18194         incomplete type.
18195
18196         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
18197         been erroneously named in a limited-with clause of its own context.
18198         In this case the error has been previously notified by Analyze_Context.
18199
18200 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
18201
18202         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
18203         generic package that contains local declarations with the same name.
18204         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
18205
18206 2005-07-07  Bernard Banner  <banner@adacore.com>
18207
18208         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
18209         ia64 platform only on platforms that you the GCC unwind library
18210         rather than the system unwind library.
18211
18212 2005-07-07  Thomas Quinot  <quinot@adacore.com>
18213
18214         * expect.c: Minor reformatting
18215
18216 2005-07-07  Sergey Rybin  <rybin@adacore.com>
18217
18218         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
18219         --no-separate-is
18220
18221         * gnat_ugn.texi: Add description for new gnatpp option
18222         (--no-separate-is)
18223
18224 2005-07-04  Thomas Quinot  <quinot@adacore.com>
18225
18226         * g-expect-vms.adb, g-expect.ads, g-expect.adb
18227         (Get_Command_Output): New subprogram to launch a process and get its
18228         standard output as a string.
18229
18230 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
18231             Olivier Hainque  <hainque@adacore.com>
18232
18233         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
18234         fetch a code-range descriptor associated with the machine state. On
18235         failure set the machine state's PC to 0; on success, pass the
18236         descriptor to exc_virtual_unwind.
18237
18238         * init.c (Tru64 section): New function __gnat_set_code_loc.
18239
18240 2005-07-04  Vincent Celier  <celier@adacore.com>
18241
18242         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
18243         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
18244         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
18245         Remove all auto-initialization code, as this is now done through the
18246         constructor mechanism.
18247
18248         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
18249         __gnat_sals_init_using_constructors): New functions.
18250
18251         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
18252         Linker_Constructor and Linker_Destructor when switch -a is used.
18253
18254         * bindusg.adb: Add line for new switch -a
18255
18256         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
18257         (Gnatbind): When switch -a is used, check if it is allowed
18258
18259         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
18260
18261 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
18262
18263         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
18264         This prevents us from hitting a limitation during the debug info
18265         generation when using stabs.
18266         (Prims_Ptr): Likewise.
18267
18268 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
18269             Ed Schonberg  <schonberg@adacore.com>
18270             Javier Miranda  <miranda@adacore.com>
18271
18272         * checks.adb (Null_Exclusion_Static_Checks): In the case of
18273         N_Object_Declaration, only perform the checks if the Object_Definition
18274         is not an Access_Definition.
18275
18276         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
18277         where the parent of an the access definition is an N_Object_Declaration
18278         when determining the Associated_Node_For_Itype and scope of an
18279         anonymous access-to-subprogram type.
18280
18281         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
18282         Corresponding_Spec on the body created for a null procedure. Add ???
18283         comment. Remove New_Copy_Tree call on body argument to
18284         Set_Body_To_Inline.
18285
18286         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
18287         discriminants, use the type of the actual as well, because the
18288         discriminants may be read by the called subprogram.
18289
18290         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
18291         access type we do not need to handle non-limited views.
18292         (Build_Derived_Record_Type): Additional check to check that in case of
18293         private types, interfaces are only allowed in private extensions.
18294
18295 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
18296
18297         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
18298         <Pragma_Linker_Destructor>: Likewise.
18299
18300         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
18301         Pragma_Linker_Destructor.
18302
18303         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
18304         ATTR_LINK_DESTRUCTOR.
18305         (static_ctors, static_dtors): New variables.
18306
18307         * misc.c (gnat_expand_body): Output current function as constructor
18308         and destructor if requested.
18309
18310         * par-prag.adb: Add processing for pragma Linker_Constructor and
18311         Linker_Destructor.
18312
18313         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
18314         extracted from Check_Interrupt_Or_Attach_Handler.
18315         (Check_Interrupt_Or_Attach_Handler): Invoke it.
18316         Implement pragma Linker_Constructor and Linker_Destructor with the
18317         help of Find_Unique_Parameterless_Procedure.
18318         Replace Name_Alias with Name_Target for pragma Linker_Alias.
18319
18320         * snames.h, snames.ads, snames.adb:
18321         Add Name_Linker_Constructor and Name_Linker_Destructor.
18322         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
18323         * snames.adb: Remove Name_Alias.
18324
18325         * trans.c: Include cgraph.h.
18326         (build_global_cdtor): New function.
18327         (Compilation_Unit_to_gnu): Build global constructor and destructor if
18328         needed.
18329         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
18330         of objects too.
18331         (addressable_p) <COMPONENT_REF>: Unconditionally test
18332         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
18333
18334         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
18335         variable if it is external.
18336
18337         (static_ctors, static_dtors): New global variables.
18338         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
18339         <ATTR_LINK_DESTRUCTOR>: Likewise.
18340         (end_subprog_body): Chain function as constructor and destructor
18341         if requested.
18342
18343         * exp_util.adb (Force_Evaluation): Unconditionally invoke
18344         Remove_Side_Effects with Variable_Ref set to true.
18345         (Remove_Side_Effects): Handle scalar types first. Use a renaming
18346         for non-scalar types even if Variable_Ref is true and for class-wide
18347         expressions.
18348
18349 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
18350
18351         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
18352         to prevent spurious warnings.
18353
18354 2005-07-04  Thomas Quinot  <quinot@adacore.com>
18355
18356         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
18357         Itypes. Itypes are really unexpected there.
18358         (Build_TypeCode_Function): Generalise special processing for Itypes to
18359         handle the case of numeric implicit base types as well as enumerated
18360         ones.
18361
18362 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
18363
18364         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
18365         controlled, indicate the expected type of the dereference that is
18366         created for the call to Deep_Finalize, to prevent spurious errors when
18367         the designated type is private and completed with a derivation from
18368         another private type.
18369
18370 2005-07-04  Vincent Celier  <celier@adacore.com>
18371
18372         * make.adb (Change_To_Object_Directory): When unable to change the
18373         current dir to the object directory, output the full path of the
18374         directory.
18375
18376 2005-07-04  Matthew Gingell  <gingell@adacore.com>
18377
18378         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
18379
18380         * indepsw-linux.adb: Replace by...
18381
18382         * indepsw-gnu.adb: ...this new file
18383
18384 2005-07-04  Vincent Celier  <celier@adacore.com>
18385
18386         * mlib-prj.adb (Auto_Initialize): New constant String
18387         (SALs_Use_Constructors): New Boolean function
18388         (Build_Library): Call gnatbind with Auto_Initialize switch when
18389         SALs_Use_Constructors returns True.
18390
18391         * mlib-tgt.ads: Minor reformatting
18392
18393         * mlib-utl.ads: Minor reformatting
18394
18395         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
18396
18397 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
18398
18399         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
18400         single protected declarations can have an interface list.
18401         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
18402         with seriously malformed entry declarations, and lead to compilation
18403         abandoned messages.
18404
18405 2005-07-04  Javier Miranda  <miranda@adacore.com>
18406
18407         * par-load.adb: Load the context items in two rounds.
18408
18409 2005-07-04  Robert Dewar  <dewar@adacore.com>
18410
18411         * scng.adb: Do not consider Mod used as an attribute to be a keyword
18412
18413 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
18414             Javier Miranda  <miranda@adacore.com>
18415
18416         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
18417         type extension needs a limited view.
18418         Remove previous restriction on private types available through the
18419         limited-view (only tagged private types were previously allowed).
18420         (Install_Withed_Unit): In the code that implements the
18421         legality rule given in AI-377, exclude a child unit with the name
18422         Standard, because it is a homonym of the Standard environment package.
18423
18424 2005-07-04  Thomas Quinot  <quinot@adacore.com>
18425
18426         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
18427         overloaded function call, carry interpretations from the original tree
18428         to the copy.
18429
18430 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
18431
18432         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
18433         types check whether some designated type is a limited view, and use
18434         the non-limited view if available.
18435
18436 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
18437
18438         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
18439         constraint of full view of a private view T1 if present, when T2 is a
18440         discriminated full view.
18441
18442 2005-07-04  Thomas Quinot  <quinot@adacore.com>
18443
18444         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
18445         actual that is a view conversion of a bit packed array reference.
18446
18447 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
18448
18449         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
18450         present before checking whether an interface type covers a synchronized
18451         type.
18452
18453 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
18454
18455         * sem_util.adb (Is_Object_Reference): An indexed or selected component
18456         whose prefix is an implicit dereference is an object reference. Removes
18457         spurious errors when compiling with -gnatc.
18458
18459 2005-07-04  Robert Dewar  <dewar@adacore.com>
18460
18461         PR ada/22039
18462         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
18463
18464 2005-07-04  Matthew Gingell  <gingell@adacore.com>
18465
18466         * tracebak.c: Enable tracebacks on ia64 platforms
18467
18468 2005-07-04  Vincent Celier  <celier@adacore.com>
18469
18470         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
18471         the GNAT BIND command, as gnatbind accepts multiples ALI files with
18472         the -L or -n switches.
18473
18474 2005-07-04  Vincent Celier  <celier@adacore.com>
18475
18476         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
18477         correctly computed and the main project data is not modified while
18478         doing so.
18479         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
18480         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
18481         c++linker as this does not work on some platforms.
18482
18483 2005-07-04  Matthew Heaney  <heaney@adacore.com>
18484
18485         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
18486         was changed.
18487         * a-coinve.adb: Perform constraint checks explicitly.
18488
18489 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18490             Thomas Quinot  <quinot@adacore.com>
18491
18492         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
18493         new target gen-soccon.
18494
18495 2005-07-04  Robert Dewar  <dewar@adacore.com>
18496
18497         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
18498
18499 2005-07-04  Thomas Quinot  <quinot@adacore.com>
18500
18501         * g-socket.ads (Check_Selector): Minor rewording of comment.
18502
18503 2005-07-04  Vincent Celier  <celier@adacore.com>
18504
18505         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
18506
18507 2005-07-04  Thomas Quinot  <quinot@adacore.com>
18508
18509         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
18510
18511 2005-07-04  Sergey Rybin  <rybin@adacore.com>
18512
18513         * gnat_ugn.texi: Add description of --eol gnatpp option
18514
18515 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
18516             Thomas Quinot  <quinot@adacore.com>
18517
18518         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
18519         if the user wants all calls of a subprogram to be flagged,
18520         independently of whether they are made from within the same unit or
18521         another unit.
18522         Mention restriction for pragma Linker_Alias on some platforms.
18523         Document pragma Linker_Constructor and Linker_Destructor.
18524         Rewrite documentation of Weak_External, Linker_Section and
18525         Linker_Alias pragmas.
18526
18527 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
18528
18529         * s-stausa.ads, s-stausa.adb: New files.
18530
18531 2005-06-30  Kelley Cook
18532
18533         * all files:  Update FSF address in copyright headers.
18534         * gen-soccon.co (main): Output new FSF address in generated files.
18535
18536 2005-06-28  Paul Brook  <paul@codesourcery.com>
18537
18538         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
18539
18540 2005-06-14  Olivier Hainque  <hainque@adacore.com>
18541             Eric Botcazou  <ebotcazou@adacore.com>
18542
18543         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
18544         exc_unwind, now that we are generating proper .debug_frame output for
18545         that target.
18546
18547         * tracebak.c: Remove the mips-irix section, as we are now using the
18548         s-mastop based unwinder again.
18549         Under SPARC/Solaris, take into account the stack bias to compute the
18550         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
18551         ABI.
18552
18553 2005-06-14  Doug Rupp  <rupp@adacore.com>
18554
18555         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
18556
18557         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
18558
18559 2005-06-14  Pascal Obry  <obry@adacore.com>
18560
18561         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
18562         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
18563         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
18564         package name).
18565
18566         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
18567         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
18568         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
18569         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
18570         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
18571         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
18572         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
18573         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
18574         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
18575         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
18576         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
18577         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
18578         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
18579         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
18580         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
18581         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
18582         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
18583         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
18584         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
18585         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
18586         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
18587         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
18588         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
18589         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
18590         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
18591         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
18592         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
18593         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
18594         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
18595         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
18596         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
18597         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
18598         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
18599         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
18600         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
18601         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
18602         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
18603         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
18604         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
18605         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
18606         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
18607         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
18608         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
18609         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
18610         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
18611         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
18612         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
18613         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
18614         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
18615         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
18616         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
18617         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
18618         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
18619         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
18620         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
18621         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
18622         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
18623         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
18624         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
18625         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
18626         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
18627         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
18628         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
18629         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
18630         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
18631         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
18632         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
18633         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
18634         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
18635         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
18636         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
18637         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
18638         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
18639         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
18640         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
18641         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
18642         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
18643         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
18644         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
18645         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
18646         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
18647         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
18648         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
18649         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
18650         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
18651         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
18652         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
18653         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
18654         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
18655         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
18656         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
18657         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
18658         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
18659         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
18660         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
18661         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
18662         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
18663         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
18664         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
18665         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
18666         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
18667         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
18668         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
18669         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
18670         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
18671         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
18672         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
18673         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
18674         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
18675         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
18676         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
18677         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
18678         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
18679         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
18680         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
18681         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
18682         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
18683         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
18684         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
18685         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
18686         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
18687         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
18688         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
18689         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
18690         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
18691         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
18692         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
18693         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
18694         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
18695         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
18696         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
18697         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
18698         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
18699
18700 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
18701             Arnaud Charlet  <charlet@adacore.com>
18702
18703         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
18704         longer protected objects. They have been replaced by lower-level
18705         suspension objects made up by a mutex and a condition variable (or
18706         their equivalent given a particular OS) plus some internal data to
18707         reflect the state of the suspension object.
18708         (Initialize, Finalize): Add this initialization procedure for
18709         Suspension_Object, which is a controlled type.
18710         (Finalize): Add the finalization procedure for Suspension_Object,
18711         which is a controlled type.
18712
18713         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
18714         Ada.Synchronous_Task_Control because there is no longer a need for a
18715         VxWorks specific version of this package. Target dependencies
18716         has been moved to System.Task_Primitives.Operations.
18717
18718         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
18719         longer needed.
18720         (InitializeCriticalSection, EnterCriticalSection,
18721         LeaveCriticalSection, DeleteCriticalSection): Replace the type
18722         pCriticalSection by an anonymous access type so that we avoid problems
18723         of accessibility to local objects.
18724
18725         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
18726         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
18727         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
18728         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
18729         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
18730         set the environment task mask here.
18731         (Current_State): Add this function that returns the state of the
18732         suspension object.
18733         (Set_False): Add this procedure that sets the state of the suspension
18734         object to False.
18735         (Set_True): Add this procedure that sets the state of the suspension
18736         object to True, releasing the task that was suspended, if any.
18737         (Suspend_Until_True): Add this procedure that blocks the calling task
18738         until the state of the object is True. Program_Error is raised if
18739         another task is already waiting on that suspension object.
18740         (Initialize): Add this procedure for initializing the suspension
18741         object. It initializes the mutex and the condition variable which are
18742         used for synchronization and queuing, and it sets the internal state
18743         to False.
18744         (Finalize): Add this procedure for finalizing the suspension object,
18745         destroying the mutex and the condition variable.
18746
18747         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
18748         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
18749         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
18750         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
18751         which provides a low-level abstraction (using operating system
18752         primitives) for Ada.Synchronous_Task_Control.
18753         This object is made up by a mutex (for ensuring mutual exclusion), a
18754         condition variable (for queuing threads until the condition is
18755         signaled), a Boolean (State) indicating whether the object is open,
18756         and a Boolean (Waiting) reflecting whether there is a task already
18757         suspended on this object.
18758
18759         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
18760         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
18761         s-intman-vms.ads, s-intman-mingw.adb,
18762         (Initialize_Interrupts): Removed, no longer used.
18763
18764         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
18765         (Setup_Interrupt_Mask): New procedure.
18766
18767         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
18768
18769         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
18770
18771         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
18772         this is no longer done in the body of s-taprop
18773         (Server_Task): Explicitely test for Pending_Action in case
18774         System.Parameters.No_Abort is True.
18775
18776         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
18777         is no longer done in the body of s-taprop
18778
18779 2005-06-14  Robert Dewar  <dewar@adacore.com>
18780
18781         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
18782         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
18783         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
18784         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
18785         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
18786         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
18787         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
18788         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
18789         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
18790         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
18791         system-linux-hppa.ads, system-vms_64.ads,
18792         system-vxworks-alpha.ads: Minor comment update for
18793         AI-362 (unit is Pure).
18794
18795         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
18796         Add pragma Pure_05 for AI-362
18797         Make remaining conversion functions obsolescent in Ada 95
18798
18799         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
18800         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
18801         Add entries for a-wichun and a-zchuni
18802         Add a-widcha a-zchara for AI-395
18803         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
18804
18805         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
18806         Add entries for a-wichun.o and a-zchuni.o
18807         Entries for a-widcha.o and a-zchara.o
18808         Add entry for a-chacon.o
18809
18810         * a-ztenau.adb: Add with of Ada.Characters.Conversions
18811
18812         * a-chacon.ads, a-chacon.adb: New files.
18813
18814         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
18815         categorization violations.
18816
18817         * a-strmap.ads: Add pragma Pure_05 for AI-362
18818         * a-strmap.ads: Add note on implicit categorization for AI-362
18819
18820         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
18821
18822         * par-prag.adb: Dummy entry for pragma Persistent_BSS
18823         Set Ada_Version_Explicit, for implementation of AI-362
18824         Add processing for pragma Pure_05 and Preelaborate_05
18825         Add entry for Assertion_Policy pragma
18826
18827         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
18828         when needed for proper processing of categorization stuff
18829
18830         * sem_cat.adb:
18831         For several cases, make errors in preealborate units warnings,
18832         instead of errors, if GNAT_Mode is set. For AI-362.
18833
18834         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
18835         preelaborate unit is now warning if in GNAT mode
18836
18837         * s-stoele.ads: Document AI-362 for pragma preelaborate
18838
18839 2005-06-14  Doug Rupp  <rupp@adacore.com>
18840
18841         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
18842         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
18843         Default_Exception_Msg_Max_Length: new parameter.
18844
18845         * a-except.ads: (Exception_Msg_Max_Length): Set to
18846         System.Parameters.Default_Exception_Msg_Max_Length
18847         Add pragma Preelaborate_05 for AI-362
18848         Add warnings off to allow categorization violations for AI-362
18849
18850 2005-06-14  Vincent Celier  <celier@adacore.com>
18851
18852         * gnatsym.adb: Adapt to modification of package Symbols: procedure
18853         Process is now in package Processing.
18854
18855         * symbols.ads, symbols.adb:
18856         (Processing): New package, containing procedure Process
18857
18858         * symbols-vms-alpha.adb:
18859         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
18860
18861         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
18862         symbols-processing-vms-ia64.adb: New files.
18863
18864 2005-06-14  Pascal Obry  <obry@adacore.com>
18865
18866         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
18867         implementation. This new version generates the proper DllMain routine
18868         to initialize the SAL. The DllMain is generated in Ada and compiled
18869         before being added as option to the library build command.
18870
18871 2005-06-14  Doug Rupp  <rupp@adacore.com>
18872             Pascal Obry  <obry@adacore.com>
18873
18874         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
18875         call to decc$translate_vms.
18876         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
18877         need to remove those quotes before catenating the filename.
18878         (__gnat_locate_exec_on_path): improvements to the Win32 section:
18879         * avoid allocating the memory twice for better efficiency;
18880         * allocate 32K buffer for environment expansion as suggested by MSDN;
18881         * prepend ".;" to the path so that current directory is searched too.
18882
18883 2005-06-14  Robert Dewar  <dewar@adacore.com>
18884
18885         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
18886         instead of raising CE (AI-241)
18887         Add warnings off to allow categorization violations for AI-362
18888
18889 2005-06-14  Robert Dewar  <dewar@adacore.com>
18890
18891         * ali-util.adb, gnatbind.adb: Remove references to
18892         Force_RM_Elaboration_Order.
18893
18894         * switch-b.adb: Remove recognition of -f switch
18895
18896 2005-06-14  Pascal Obry  <obry@adacore.com>
18897
18898         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
18899         implementation which is slightly more efficient.
18900
18901 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
18902             Javier Miranda  <miranda@adacore.com>
18903             Ed Schonberg  <schonberg@adacore.com>
18904             Hristian Kirtchev  <kirtchev@adacore.com>
18905
18906         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
18907         allocator's designated type is a class-wide type, and compiling for
18908         Ada 2005, emit a run-time check that the accessibility level of the
18909         type given in the allocator's expression is not deeper than the level
18910         of the allocator's access type.
18911
18912         (Tagged_Membership): Modified to gives support to abstract interface
18913         types.
18914
18915         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
18916         Access_Level.
18917         (Descendant_Tag): New predefined function
18918         (Is_Descendant_At_Same_Level): New predefined function
18919         (Get_Access_Level): New private function
18920         (Set_Access_Level): New private procedure
18921         (IW_Membership): New function. Given the tag of an object and the tag
18922         associated with an interface, evaluate if the object implements the
18923         interface.
18924         (Register_Interface_Tag): New procedure used to initialize the table of
18925         interfaces used by the IW_Membership function.
18926         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
18927         of the dispatch table.
18928         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
18929         table of interfaces of the parent.
18930         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
18931         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
18932         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
18933         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
18934         Ada 2005 semantics for the new predefined function.
18935
18936         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
18937         call to Descendant_Tag rather than Internal_Tag.
18938         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
18939         the accessibility level of the attribute's Item parameter is not deeper
18940         than the level of the attribute's prefix type. Tag_Error is raised if
18941         the check fails. The check is only emitted for Ada_05.
18942         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
18943         requested stream attribute, use it.
18944         (Expand_N_Attribute_Reference): If the designated type is an interface
18945         then rewrite the referenced object as a conversion to force the
18946         displacement of the pointer to the secondary dispatch table.
18947         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
18948         is a dereference of an object with a constrained partial view.
18949
18950         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
18951         type is a class-wide type, emit a run-time check that the accessibility
18952         level of the returned object is not deeper than the level of the
18953         function's master (only when compiling for Ada 2005).
18954
18955         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
18956         Action_Nb_Arg): Add entries for new Get_Access_Level and
18957         Set_Access_Level routines in these tables.
18958         (Make_DT): Generate a call to set the accessibility level of the
18959         tagged type in its TSD.
18960         (Make_DT): Code cleanup. The functionality of generating all the
18961         secondary dispatch tables has been moved to freeze_record_type.
18962         (Make_Abstract_Interface_DT): Minor code cleanup.
18963         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
18964         this subprogram implements a new algorithm that provides the
18965         same functionality and it is more clear in case of primitives
18966         associated with abstract interfaces.
18967         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
18968         clean up, the functionality of this subprogram is now provided
18969         by Set_All_DT_Position.
18970         (Write_DT): New subprogram: a debugging procedure designed to be called
18971         within gdb to display the dispatch tables associated with a tagged
18972         type.
18973         (Collect_All_Interfaces): New subprogram that collects the whole list
18974         of interfaces that are directly or indirectly implemented by a tagged
18975         type.
18976         (Default_Prim_Op_Position): New subprogram that returns the fixed
18977         position in the dispatch table of the default primitive operations.
18978         (Expand_Interface_Actuals): New subprogram to generate code that
18979         displaces all the actuals corresponding to class-wide interfaces to
18980         reference the interface tag of the actual object.
18981         (Expand_Interface_Conversion): New subprogram. Reference the base of
18982         the object to give access to the interface tag associated with the
18983         secondary dispatch table.
18984         (Expand_Interface_Thunk): New subprogram that generates the code of the
18985         thunk. This is required for compatibility with the C+ ABI.
18986         (Make_Abstract_Interface_DT): New subprogram that generate the
18987         declarations for the secondary dispatch tables associated with an
18988         abstract interface.
18989         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
18990         attribute for each primitive operation covering interface subprograms
18991         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
18992         These subprograms were upgraded to give support to abstract interfaces
18993
18994         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
18995         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
18996         RE_Set_Access_Level.
18997         (RE_Unit_Table): Add entries for new Ada.Tags operations.
18998         Add support to call the followig new run-time subprograms:
18999         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
19000
19001         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
19002         match its full declaration when both have an access definition with
19003         statically matching designated subtypes.
19004         (Analyze_Component_Declaration): Delete commented out code that was
19005         incorrectly setting the scope of an anonymous access component's type.
19006         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
19007         an access discriminant when the containing type is nonlimited.
19008         (Make_Incomplete_Type_Declaration): Create an incomplete type
19009         declaration for a record type that includes self-referential access
19010         components.
19011         (Check_Anonymous_Access_Types): Before full analysis of a record type
19012         declaration, create anonymous access types for each self-referential
19013         access component.
19014         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
19015         an access component in this context is a Local_Anonymous_Access, for
19016         proper accessibility checks.
19017         (Access_Definition): Set properly the scope of the anonymous access type
19018         created for a stand-alone access object.
19019         (Find_Type_Of_Object): An object declaration may be given with an access
19020         definition.
19021         (Complete_Subprograms_Derivation): New subprogram used to complete
19022         type derivation of private tagged types implementing interfaces.
19023         In this case some interface primitives may have been overriden
19024         with the partial-view and, instead of re-calculating them, they
19025         are included in the list of primitive operations of the full-view.
19026         (Build_Derived_Record_Type): Modified to give support to private
19027         types implemening interfaces.
19028         (Access_Definition): Reject ALL on anonymous access types.
19029         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
19030         type derivation to occur at a deeper accessibility level than the
19031         parent type.
19032         For the case of derivation within a generic body however, disallow the
19033         derivation if the derived type has an ancestor that is a formal type
19034         declared in the formal part of an enclosing generic.
19035         (Analyze_Object_Declaration): For protected objects, remove the check
19036         that they cannot contain interrupt handlers if not declared at library
19037         level.
19038         (Add_Interface_Tag_Components): New subprogram to add the tag components
19039         corresponding to all the abstract interface types implemented by a
19040         record type or a derived record type.
19041         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
19042         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
19043         Process_Full_View, Record_Type_Declaration): Modified to give
19044         support to abstract interface types
19045         (Collect_Interfaces): New subprogram that collects the list of
19046         interfaces that are not already implemented by the ancestors
19047         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
19048         when partial view has no discriminants and full view has defaults.
19049         (Constrain_Access): Reject a constraint on a general access type
19050         if the discriminants of the designated type have defaults.
19051         (Access_Subprogram_Declaration): Associate the Itype node with the inner
19052         full-type declaration or subprogram spec. This is required to handle
19053         nested anonymous declarations.
19054         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
19055         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
19056         Process_Full_View, Record_Type_Declaration): Modified to give
19057         support to abstract interface types
19058         (Derive_Subprograms): Addition of a new formal to indicate if
19059         we are in the case of an abstact-interface derivation
19060         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
19061         to the specification because it is requied to analyze all the
19062         identifiers found in a list of interfaces
19063
19064         * debug.adb: Complete documentation of flag "-gnatdZ"
19065
19066         * exp_ch3.adb: Implement config version of persistent_bss pragma
19067         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
19068         testing for TSS presence to properly enforce visibility rules.
19069         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
19070         Make_Abstract_Interfaces_DT to generate the secondary tables
19071         associated with abstract interfaces.
19072         (Build_Init_Procedure): Modified to initialize all the tags
19073         corresponding.
19074         (Component_Needs_Simple_Initialization): Similar to other tags,
19075         interface tags do not need initialization.
19076         (Freeze_Record_Type): Modified to give support to abstract interface
19077         types.
19078         (Expand_N_Object_Declaration): Do not generate an initialization for
19079         a scalar temporary marked as internal.
19080
19081         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
19082         in-out parameter that is a component in an initialization procedure,
19083         whose constraint might depend on discriminants, and that may be
19084         misaligned because of packing or representation clauses.
19085         (Is_Legal_Copy): New predicate to determine whether a possibly
19086         misaligned in-out actual can actually be passed by copy/return. This
19087         is an error in case the type is by_reference, and a warning if this is
19088         the consequence of a DEC import pragma on the subprogram.
19089         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
19090         interface types
19091         (Expand_Inlined_Call): Mark temporary generated for the return value as
19092         internal, so that no useless scalar normalization is generated for it.
19093         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
19094         null procedure can always be inlined.
19095         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
19096         procedure, generate an explicit empty body for it.
19097
19098         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
19099         Given a type implementing an interface, returns the corresponding
19100         access_disp_table value.
19101         (Find_Interface_Tag): New subprogram. Given a type implementing an
19102         interface, returns the record component containing the tag of the
19103         interface.
19104         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
19105         previous ones that return the corresponding tag and access_disp_table
19106         entities.
19107         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
19108         is a predefined primitive operation.
19109         (Expand_Subtype_From_Expr): If the expression is a selected component
19110         within an initialization procedure, compute its actual subtype, because
19111         the component may depend on the discriminants of the enclosing record.
19112
19113         * i-cpp.ads, i-cpp.adb:
19114         This package has been left available for compatibility with previous
19115         versions of the frontend. As part of the new layout this is now a
19116         dummy package that uses declarations available at a-tags.ads
19117
19118         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
19119         "constant access" and "aliased [constant] access" when not compiling
19120         with -gnat05.
19121         Suppress Ada 2005 keyword warning if -gnatwY used
19122         (P_Identifier_Declarations): Add support for object declarations with
19123         access definitions.
19124         (Private_Extension_Declaration): Complete the documentation
19125         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
19126         attribute in case of private extension declaration
19127         (P_Type_Declaration): Mark as "abstract" the type declarations
19128         corresponding with protected, synchronized and task interfaces
19129         (P_Declarative_Items): "not" and "overriding" are overriding indicators
19130         for a subprogram or instance declaration.
19131
19132         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
19133         instantiation that is a dispatching operation has controlling access
19134         parameters that are null excluding.
19135         Save and restore Ada_Version_Explicit, for implementation of AI-362
19136         (Validate_Derived_Type_Instance): Add check for abstract interface
19137         types.
19138         (Analyze_Formal_Package): Establish Instantiation source for the copy of
19139         the generic that is created to represent the formal package.
19140         (Analyze_Package_Instantiation): Instantiate body immediately if the
19141         package is a predefined unit that contains inlined subprograms, and
19142         we are compiling for a Configurable_Run_Time.
19143         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
19144         If the program has a null default, generate an empty body for it.
19145
19146         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
19147         error message condition, null procedures are correctly detected now.
19148         (New_Overloaded_Entity): Bypass trivial overriding indicator check
19149         for subprograms in the context of protected types. Instead, the
19150         indicator is examined in Sem_Ch9 while analysing the subprogram
19151         declaration.
19152         (Check_Overriding_Indicator): Check consistency of overriding indicator
19153         on subprogram stubs as well.
19154         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
19155         the library level.
19156         (Analize_Subprogram_Specification): When analyzing a subprogram in which
19157         the type of the first formal is a concurrent type, replace this type
19158         by the corresponding record type.
19159         (Analyze_Subprogram_Body): Undo the previous work.
19160         (Analyze_Procedure_Call): If the call has the form Object.Op, the
19161         analysis of the prefix ends up analyzing the call itself, after which
19162         we are done.
19163         (Has_Interface_Formals): New subprogram subsidiary to analyze
19164         subprogram_specification that returns true if some non
19165         class-wide interface subprogram is found
19166         (New_Overloaded_Entity): Modified to give support to abstract
19167         interface types
19168         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
19169         access to subprograms must be recursive.
19170         (Is_Unchecked_Conversion): Improve the test that recognizes
19171         instantiations of Unchecked_Conversion, and allows them in bodies that
19172         are to be inlined by the front-end. When the body comes from an
19173         instantiation, a reference to Unchecked_Conversion will be an
19174         Expanded_Name, even though the body has not been analyzed yet.
19175         Replace Is_Overriding and Not_Overriding in subprogram_indication with
19176         Must_Override and Must_Not_Override, to better express intent of AI.
19177         (Analyze_Subprogram_Body): If an overriding indicator is given, check
19178         that it is consistent with the overrinding status of the subprogram
19179         at this point.
19180         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
19181         always inlined.
19182         If the subprogram is a null procedure, indicate that it does not need
19183         a completion.
19184
19185         * sem_disp.adb (Check_Controlling_Type): Give support to entities
19186         available through limited-with clauses.
19187         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
19188         allowed as the last primitive of a tagged type if it has no previous
19189         spec.
19190         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
19191         to give support to abstract interface types
19192
19193         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
19194         in the case where the target type is an anonymous access type of an
19195         object or component (that is, when Is_Local_Anonymous_Access is true).
19196         Prevent the special checks for conversions of access discriminants in
19197         the case where the discriminant belongs to a nonlimited type, since
19198         such discriminants have their accessibility level defined in the same
19199         way as a normal component of an anonymous access type.
19200         (Resolve_Allocator): When an allocator's designated type is a class-wide
19201         type, check that the accessibility level of type given in the
19202         allocator's expression or subtype indication is not statically deeper
19203         than the level of the allocator's access type.
19204         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
19205         name in a discriminant constraint of a record component.
19206         (Resolve_Explicit_Dereference): Do not check whether the type is
19207         incomplete when the dereference is a use of an access discriminant in
19208         an initialization procedure.
19209         (Resolve_Type_Conversion): Handle conversions to abstract interface
19210         types.
19211         (Valid_Tagged_Conversion): The conversion of a tagged type to an
19212         abstract interface type is always valid.
19213         (Valid_Conversion): Modified to give support to abstract interface types
19214         (Resolve_Actuals): Enable full error reporting on view conversions
19215         between unrelated by_reference array types.
19216         The rule for view conversions of arrays with aliased components is
19217         weakened in Ada 2005.
19218         Call to obsolescent subprogram is now considered to be a violation of
19219         pragma Restrictions (No_Obsolescent_Features).
19220         (Check_Direct_Boolean_Operator): If the boolean operation has been
19221         constant-folded, there is nothing to check.
19222         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
19223         check on possible violation of restriction No_Direct_Boolean_Operators
19224         until after expansion of operands, to prevent spurious errors when
19225         operation is constant-folded.
19226
19227         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
19228         Has_Compatible_Type): Modified to give support to abstract interface
19229         types.
19230         (Interface_Present_In_Ancestor): New function to theck if some ancestor
19231         of a given type implements a given interface
19232
19233         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
19234         prefix is a parameterless function that returns an access_to_procedure.
19235         (Transform_Object_Operation): Handle properly function calls of the
19236         form Obj.Op (X), which prior to analysis appear as indexed components.
19237         (Analyze_One_Call): Complete the error notification to help new Ada
19238         2005 users.
19239         (Analyze_Allocator): For an allocator without an initial value, where
19240         the designated type has a constrained partial view, a discriminant
19241         constraint is illegal.
19242
19243 2005-06-14  Robert Dewar  <dewar@adacore.com>
19244
19245         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
19246         do with treatment of Set_Col when positioned at end of line character.
19247
19248 2005-06-14  Robert Dewar  <dewar@adacore.com>
19249
19250         * atree.adb: (Elist*): Protect against uninitialized field
19251
19252 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19253
19254         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
19255         for an attribute reference that returns an access type.
19256         (Apply_Discriminant_Check): No need for check if (designated) type has
19257         constrained partial view.
19258
19259         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
19260         both bound checks, rather than a conjunction.
19261         (Insert_Valid_Check): If the expression is an actual that is an indexed
19262         component of a bit-packed array, force expansion of the packed element
19263         reference, because it is specifically inhibited elsewhere.
19264
19265 2005-06-14  Vincent Celier  <celier@adacore.com>
19266
19267         * clean.adb (Clean_Project): Correctly delete executable specified as
19268         absolute path names.
19269
19270         * make.adb (Gnatmake): Allow relative executable path names with
19271         directory information even when project files are used.
19272         (Change_To_Object_Directory): Fail gracefully when unable to change
19273         current working directory to object directory of a project.
19274         (Gnatmake): Remove exception handler that could no longer be exercized
19275         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
19276         may be deallocated by Normalize_Arguments.
19277         (Collect_Arguments): Eliminate empty arguments
19278
19279         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
19280         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
19281         (Check_Project): Return False when Project is No_Project. Return True
19282         when All_Projects is True.
19283         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
19284         All_Projects to True.
19285         Minor reformatting
19286
19287 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19288             Javier Miranda  <miranda@adacore.com>
19289             Thomas Quinot  <quinot@adacore.com>
19290             Robert Dewar  <dewar@adacore.com>
19291             Hristian Kirtchev  <kirtchev@adacore.com>
19292             Gary Dismukes  <dismukes@adacore.com>
19293
19294         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
19295         anonymous access types, to indicate that the accessibility level of
19296         the type is determined by that of the enclosing declaration.
19297         (Has_Persistent_BSS): New flag
19298         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
19299         of this attribute with functions.
19300         (Is_Primitive_Wrapper): Remove the barrier.
19301         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
19302         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
19303         New subprograms.
19304         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
19305         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
19306         New subprograms.
19307         (Is_Pure_Unit_Access_Type): New flag
19308         (Abstract_Interfaces): Complete the assertion to cover all usages.
19309         (Set_Is_Interface): Complete the assertion to cover all usages.
19310         (Is_Primitive_Wrapper): New attribute.
19311         (Is_Obsolescent): Now applies to all entities (though it is only set
19312         for subprograms currently)
19313         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
19314         which solves various problems concerning access subtypes.
19315         (Has_Persistent_BSS): New flag
19316         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
19317         Remove these subprograms because this attribute is currently
19318         not used.
19319         New entity flags:
19320         Has_Specified_Stream_Input (Flag190)
19321         Has_Specified_Stream_Output (Flag191)
19322         Has_Specified_Stream_Read (Flag192)
19323         Has_Specified_Stream_Write (Flag193)
19324         Present in all type and subtype entities. Set for a given view if the
19325         corresponding stream-oriented attribute has been defined by an
19326         attribute definition clause. When such a clause occurs, a TSS is set
19327         on the underlying full view; the flags are used to track visibility of
19328         the attribute definition clause for partial or incomplete views.
19329         (Is_Pure_Unit_Access_Type): New flag
19330         Clarify use of Is_Internal.
19331         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
19332         internally generated to wrap the invocation of tasks and protected
19333         types that implement interfaces.
19334         (Implementation_Base_Type): Documentation correction
19335         (Is_Obsolescent): Now applies to all entities (though it is only set
19336         for subprograms currently)
19337         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
19338         which solves various problems concerning access subtypes.
19339
19340         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
19341         for examined parameters. Identify unequal parameter list lengths as
19342         non-conformant parameters.
19343         (Overriding_Possible): Do not check for "All" qualifier in declaration
19344         of controlling access parameter, following prescription of AI-404.
19345         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
19346         that build the procedure body that wraps an entry invocation
19347         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
19348         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
19349         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
19350         give support to abstract interface types
19351
19352         * freeze.adb (Freeze_Entity): Issue error message if
19353         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
19354         type has no storage pool (Ada 2005) AI-366.
19355         Also modified to give support to abstract interface types
19356         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
19357         Inline_Always pragma.
19358
19359         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
19360         now begin an entry declaration.
19361         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
19362         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
19363         a subprogram declaration preceded by an overriding indicator.
19364         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
19365         declarations or subprogram declarations preceded by reserved words
19366         "not" or "overriding".
19367         (P_Entry_Declaration): Update comment. Parse and check overriding
19368         indicator, set semantic flags of entry declarations.
19369         (P_Task): New error message in case of private applied
19370         to a task type declaration.
19371         (P_Protected): New error message in case of private applied
19372         to a task type declaration.
19373
19374         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
19375         in which the full view of a type implementing an interface is a
19376         concurrent type.
19377         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
19378         Declare_Inherited_Private_Subprograms): If an explicit operation
19379         overrides an operation that is inherited in the private part, mark the
19380         explicit one as overriding, to enable overriding indicator checks.
19381         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
19382         full view to partial view, to simplify handling in back-end.
19383
19384         * sprint.adb: Print interface lists where needed: derived types,
19385         protected types, task types.
19386         output "is null" for null procedures. Part of implementation of
19387
19388         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
19389         relaxation of rules for access types in pure, shared passive partitions.
19390
19391         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
19392         first read discriminants into temporary objects, performing checks on
19393         the read values, then possibly performing discriminant checks on the
19394         actual (if it is constrained), and only finally reading the components
19395         into a constrained temporary object.
19396         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
19397         case of reading discriminants of a mutable record type to recognize
19398         the new form of the code generated by
19399         Build_Mutable_Record_Read_Procedure.
19400
19401         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
19402         of a simple call to Make_TSS_Name.
19403         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
19404         buffer, in order for Is_TSS to work correctly on local TSS names.
19405
19406         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
19407         Is_Local_Anonymous_Access to check legaliy of attributes in the
19408         context of  access components and stand-alone access objects.
19409         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
19410         treated as available for a limited private type if there is an
19411         attribute_definition_clause that applies to its full view, but not in
19412         other cases where the attribute is available for the full view
19413         (specifically, the sole fact that the full view is non-limited does not
19414         make the attribute available for the partial view).
19415         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
19416         non-overloaded intrinsic subprogram.
19417         (Check_Stream_Attribute): Reject an attribute reference for an
19418         unavailable stream attribute even if the prefix is not a limited type
19419         (case of a 'Input attribute reference for an abstract, non-classwide
19420         type)
19421         (Stream_Attribute_Available): New function to determine whether a stream
19422         attribute is available at a place.
19423         (Check_Attribute): Use Stream_Attribute_Available instead of just
19424         testing for TSS presence on the implementation base type.
19425         (Analyze_Attribute): Modified to give support to task interfaces.
19426         (Analyze_Access_Attribute): Add error check for use of an Access (or
19427         Unrestricted_Access) attribute with a subprogram marked as
19428         Inline_Always.
19429         (Analyze_Attribute, case Attribute_Address): Add error check for use of
19430         an Address attribute with a subprogram marked as Inline_Always.
19431         Update Eval_Attribute to handle new value of Width from AI-395
19432
19433         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
19434         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
19435         Factor common code across the stream-oriented attribute circcuits into
19436         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
19437         processing is functionally identical to the previous duplicated one,
19438         except that an expression that denotes an abstract subprogram will now
19439         be rejected, as mandated by AI-195 item 5.
19440
19441         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
19442         Is_Local_Anonymous_Access to apply accessibility checks to access
19443         components and stand-alone access objects.
19444         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
19445         elsewhere.
19446         (Is_Potentially_Persistent_Type): New function
19447         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
19448         a heap-object whose type has a constrained partial view, the object is
19449         unconstrained and the component may depend on a discriminant, making its
19450         renaming illegal.
19451
19452         * sinfo.ads, sinfo.adb
19453         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
19454         (Must_Override): Flag applicable to N_Entry_Declaration.
19455         Indicate that interface_list can appear in single task and single
19456         protected declarations.
19457         Replace Is_Overriding and Not_Overriding with Must_Override and
19458         Must_Not_Override, to better express intent of AI.
19459         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
19460         of an overriding indicator in a subprogram or instance.
19461         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
19462         Add the overriding indicator [[not] overriding] construct to the
19463         following grammar productions:
19464          ENTRY_DECLARATION
19465          GENERIC_INSTANTIATION
19466          SUBPROGRAM_SPECIFICATION
19467
19468         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
19469         can start with an overriding indicator.
19470
19471         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
19472         flags accordingly on subrogram specifications or instances.
19473
19474         * sem_ch8.adb:
19475         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
19476         overriding_indicator, if present, is consistent with status of spec.
19477         Improve error message for null-excluding checks on controlling access
19478         parameters.
19479         (Check_In_Previous_With_Clause): Protect the frontend against
19480         previously reported critical errors in the context clauses.
19481         Save and restore Ada_Version_Explicit, for implementation of AI-362
19482         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
19483         operation verify that controlling formals of the renamed entity that
19484         are access parameters are explicitly non-null.
19485         (Find_Expanded_Name): Improve error message when prefix is an illegal
19486         reference to a private child unit.
19487
19488         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
19489         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
19490         Rewrite to correspond to new wide character names in AI-395
19491
19492         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
19493         default procedures.
19494
19495 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19496             Robert Dewar  <dewar@adacore.com>
19497
19498         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
19499         code, not on the bodies of predefined operations, to cut down on
19500         spurious noise.
19501
19502 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19503
19504         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
19505         be expanded in place. The size computation does not require a
19506         subtraction, which would raise an exception on a compiler built with
19507         assertions when the upper bound is Integer'first.
19508         (Flatten): For an array of composite components, take into account the
19509         size of the components to determine whether it is safe to expand the
19510         array into a purely positional representation.
19511
19512 2005-06-14  Thomas Quinot  <quinot@adacore.com>
19513
19514         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
19515         denoting a formal parameter into account.
19516
19517 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19518
19519         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
19520         the entry_call alternative of a conditional entry call, wrap the
19521         conditional entry call itself.
19522
19523 2005-06-14  Nicolas Setton  <setton@adacore.com>
19524             Ed Schonberg  <schonberg@adacore.com>
19525
19526         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
19527         the "simple_choice" member in a variant record, in accordance with the
19528         description in the package spec: the information output for a constant
19529         should be "S number", not "SS number".
19530         (Get_Encoded_Name): Return at once if not generating code. Avoids name
19531         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
19532
19533 2005-06-14  Thomas Quinot  <quinot@adacore.com>
19534
19535         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
19536         RACW without any primitives, do not generate the if statement for
19537         dispatching by name in the PolyORB/DSA case, as it would be malformed
19538         (it would have an Elsif_Parts list that is not No_List, but with a
19539         length of 0).
19540
19541 2005-06-14  Robert Dewar  <dewar@adacore.com>
19542
19543         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
19544
19545 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
19546
19547         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
19548         can determine whether pragma Suppress_Exception_Locations is in effect.
19549
19550         * utils2.c (build_call_raise): Do not pass the file name to the
19551         exception handler if pragma Suppress_Exception_Locations is in effect.
19552         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
19553
19554 2005-06-14  Emmanuel Briot  <briot@adacore.com>
19555
19556         * g-debpoo.adb (Deallocate, Dereference): Improve output.
19557
19558 2005-06-14  Nicolas Roche  <roche@adacore.com>
19559
19560         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
19561         to ""
19562         (Next_Level): Fix minor bug in handling of ../dir case
19563         (Read): Add dir separator to Directory name so that "" is understood as
19564          "/"
19565
19566 2005-06-14  Pascal Obry  <obry@adacore.com>
19567
19568         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
19569         releasing the items.
19570
19571 2005-06-14  Vincent Celier  <celier@adacore.com>
19572             Cyrille Comar  <comar@adacore.com>
19573
19574         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
19575         with output file descriptor and with output file name.
19576         (Dup, Dup2): Now global procedures as they are used by two subprograms
19577         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
19578
19579 2005-06-14  Thomas Quinot  <quinot@adacore.com>
19580
19581         PR ada/6717
19582         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
19583         broadcast address.
19584         (Create_Selector): Bind listening socket used to create the signalling
19585         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
19586         Set listen backlog to 1 to ensure that we detect socket theft by a
19587         failure of our own connect(2) call.
19588         (Check_Selector): Improve documentation of the selector mechanism.
19589         (Broadcast_Inet_Addr): New constant.
19590
19591 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
19592
19593         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
19594         type which turns out to be an incomplete and incorrect fix.
19595         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
19596         of the type is declared in a record (for determination of insertion
19597         type).
19598         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
19599         a private type and ensure that the primary entity is used for the type
19600         of the newly created function's V formal by taking the Etype of the
19601         view.
19602
19603 2005-06-14  Javier Miranda  <miranda@adacore.com>
19604             Jose Ruiz  <ruiz@adacore.com>
19605             Robert Dewar  <dewar@adacore.com>
19606             Ed Schonberg  <schonberg@adacore.com>
19607
19608         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
19609         that indicates if we are parsing a compilation unit found in a
19610         limited-with clause.
19611         It is use to avoid the circularity check.
19612
19613         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
19614         we are parsing a compilation unit found in a limited-with clause. This
19615         is use to avoid the circularity check.
19616
19617         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
19618         unit as a consequence of parsing a limited-with clause. This is used
19619         to avoid the circularity check.
19620
19621         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
19622         (Analyze_Context): Limited-with clauses are now allowed
19623         in more compilation units.
19624         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
19625         againts previously reported critical errors in context clauses
19626         (Install_Limited_Withed_Unit): Code cleanup plus static detection
19627         of two further errors: renamed subprograms and renamed packages
19628         are not allowed in limited with clauses.
19629         (Install_Siblings): Do not install private_with_clauses on the package
19630         declaration for a non-private child unit.
19631         (Re_Install_Parents): When a parent of the subunit is reinstalled,
19632         reset visibility of child units properly.
19633         (Install_Withed_Unit): When a child unit appears in a with_clause of its
19634         parent, it is immediately visible.
19635
19636 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19637             Emmanuel Briot  <briot@adacore.com>
19638
19639         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
19640         declared within an inlined body as referenced, to prevent spurious
19641         warnings.
19642         (Output_One_Ref): If an entity renames an array component, indicate in
19643         the ALI file that this aliases (renames) the array. Capture as well
19644         function renamings that rename predefined operations.
19645         Add information about generic parent for package and subprogram
19646         instances.
19647         (Get_Type_Reference): For a subtype that is the renaming of an actual in
19648         an instantiation, use the first_subtype to ensure that we don't generate
19649         cross-reference information for internal types.
19650         For objects and parameters of a generic private type, retain the '*'
19651         indicator to distinguish such an entity from its type.
19652
19653         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
19654         to store information about instantiated entities.
19655
19656         * ali.adb (Scan_ALI): Add support for parsing the reference to the
19657         generic parent
19658
19659         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
19660         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
19661         information.
19662
19663 2005-06-10  Doug Rupp  <rupp@adacore.com>
19664             Arnaud Charlet  <charlet@adacore.com>
19665             Olivier Hainque  <hainque@adacore.com>
19666             Jose Ruiz  <ruiz@adacore.com>
19667
19668         * Make-lang.in: Add initialize.o when needed.
19669         Remove obsolete references to RT_FLAGS.
19670         Add missing dependencies for sdefault.o
19671
19672         * initialize.c: New file.
19673
19674         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
19675         [VMS] cond_signal_table: Fix problem in declaration.
19676         [VMS] __gnat_error_handler: rewrite.
19677         Move all __gnat_initialize() routines to initialize.c
19678         Specialize the former "hpux" section to "hppa hpux", as this is what the
19679         section really is here for and we now have other hpux ports that need
19680         different contents.
19681         (__gnat_adjust_context_for_raise) i386-linux: First version of this
19682         function for this target. Adjust PC by one in the machine context. This
19683         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
19684         it is more reliable to do that in the signal handler itself.
19685         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
19686         flags, so that the handler is passed the context structure to adjust
19687         prior to the raise.
19688         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
19689         SA_SIGINFO sigaction should look like. Call
19690         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
19691         Machine_State_Operations stuff.
19692         Add conditional code so that the x86_64 is also supported.
19693
19694 2005-06-14  Pascal Obry  <obry@adacore.com>
19695
19696         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
19697         the library name.
19698
19699 2005-06-14  Robert Dewar  <dewar@adacore.com>
19700
19701         * opt.ads, opt.adb: New flags for persistent_bss mode
19702         Add Ada_Version_Explicit, for implementation of AI-362
19703         Add Assertions_Enabled_Config and associated handling
19704         Needed since setting can be changed with Assertion_Policy pragma
19705         Add new flag Warn_On_Ada_2005_Compatibility
19706
19707         * switch-c.adb: Recognize -gnatwy/Y
19708         Set Ada_Version_Explicit, for implementation of AI-362
19709         The -gnatg switch now includes -gnatyu
19710
19711         * usage.adb: Add -gnatwy/Y
19712         Remove wrong asterisk on -gnatwX line
19713         Add line for -gnatyu switch
19714
19715 2005-06-14  Vincent Celier  <celier@adacore.com>
19716
19717         * osint.adb (Add_Default_Search_Dirs): Put source and object
19718         directories of project files before directories coming from
19719         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
19720
19721 2005-06-14  Robert Dewar  <dewar@adacore.com>
19722
19723         PR ada/15613
19724         * par-ch2.adb (Scan_Pragma_Argument): New procedure
19725         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
19726
19727 2005-06-14  Vincent Celier  <celier@adacore.com>
19728
19729         * prep.adb (Preprocess): Ignore error when scanning the first token of
19730         a line.
19731
19732 2005-06-14  Vincent Celier  <celier@adacore.com>
19733
19734         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
19735         (Check_Stand_Alone_Library): If the specified reference symbol file does
19736         not exist, only issue a warning when the symbol policy is not
19737         Controlled. And, when symbol policy is Compliant, set the symbol
19738         policy to Autonomous.
19739
19740 2005-06-14  Vincent Celier  <celier@adacore.com>
19741
19742         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
19743         when the project file in a with clause is not the last one, that is the
19744         project file name is followed by a comma.
19745         * prj-pp.adb: (First_With_In_List): New Boolean global variable
19746         (Print): Issue list of project files separated by commas in with clauses
19747         according to the values returned by Is_Not_Last_In_List.
19748         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
19749         (Set_Is_Not_Last_In_List): New procedure
19750
19751 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
19752
19753         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
19754
19755 2005-06-14  Robert Dewar  <dewar@adacore.com>
19756
19757         * scng.adb: Add call to new Check_EOF routine
19758         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
19759         Add some comments regarding wide character handling
19760
19761         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
19762
19763         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
19764
19765         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
19766         characters are now considered graphic characters and hence yield false
19767         in this call.
19768
19769         * nmake.adt: Modify header so that xnmake does not generate output
19770         files with multiple blank lines.
19771
19772         * treeprs.adt: Remove a blank line so that output from xtreeprs does
19773         not have an extra blank line
19774
19775 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
19776
19777         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
19778         expression when the component type is an anonymous access type to
19779         ensure that appropriate accessibility checks are done.
19780
19781         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
19782         expression of an assignment when the target object is of an anonymous
19783         access type. This ensures that required accessibility checks are done.
19784         (One_Bound): Move the check for type Universal_Integer to
19785         Process_Bounds.
19786         (Process_Bounds): Check whether the type of the preanalyzed range is
19787         Universal_Integer, and in that case set Typ to Integer_Type prior
19788         to setting the type of the original range and the calls to One_Bound.
19789
19790 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19791
19792         * sem_case.adb (Expand_Others_Choice): Improve warning.
19793
19794 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19795
19796         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
19797         constraint of full view if present, when other type is discriminated.
19798         (Eval_Relational_Op): Recognize tests of pointer values against Null,
19799         when the pointer is known to be non-null, and emit appropriate warning.
19800
19801 2005-06-14  Robert Dewar  <dewar@adacore.com>
19802             Ed Schonberg  <schonberg@adacore.com>
19803
19804         PR ada/10671
19805         * sem_prag.adb: Implement pragma Persistent_BSS
19806         Remove obsolete pragma Persistent_Data, Persistent_Object
19807         Set Ada_Version_Explicit, for implementation of AI-362
19808         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
19809         Add processing for pragma Pure_05 and Preelaborate_05
19810         Add processing for Assertion_Policy pragma
19811         Add pragma identifiers for Assert
19812         (Analyze_Pragma, case Assert): Check number of arguments
19813         (Process_Inline): Additional guard against an illegal program, where the
19814         argument of the pragma is undefined, and warnings on redundant
19815         constructs are enabled.
19816         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
19817         Ada_05 to this pragma, specifying that the pragma is only active in
19818         Ada_05 mode.
19819         (Check_Arg_Order): New procedure
19820         Add appropriate calls to this procedure throughout
19821         Also throughout, check entity name before doing any other checks
19822
19823         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
19824         Remove obsolete pragma Persistent_Data, Persistent_Object
19825         Add entries for pragma Pure_05 and Preelaborate_05
19826         Add entries for Assertion_Policy pragma and associated names
19827         Add some names for pragma argument processing
19828
19829         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
19830
19831 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19832
19833         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
19834         appears within a negation (either from source or as a rewriting of
19835         inequality) adjust text of warning accordingly.
19836
19837 2005-06-14  Thomas Quinot  <quinot@adacore.com>
19838
19839         * s-strxdr.adb: Follow AI95-00132
19840
19841 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
19842
19843         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
19844
19845 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
19846             Jose Ruiz  <ruiz@adacore.com>
19847
19848         * s-tposen.adb, s-tpobop.adb
19849         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
19850         the exception id.
19851         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
19852         there is no violation of the Max_Entry_Queue_Length restriction (if it
19853         has been set); Program_Error is raised otherwise.
19854         (Requeue_Call): Before requeuing the task on the target entry queue we
19855         check that there is no violation of the Max_Entry_Queue_Length
19856         restriction (if it has been set); Program_Error is raised otherwise.
19857
19858 2005-06-14  Robert Dewar  <dewar@adacore.com>
19859
19860         * styleg.adb: Fix several remaining problems in -gnatyu switch
19861         Blank line count not reset at start
19862         Scanning outside source buffer in some cases
19863         Confusing message for blanks at end of file
19864         Non-empty blank lines not recognized
19865
19866         * nmake.adt: Modify header so that xnmake does not generate output
19867         files with multiple blank lines.
19868
19869         * treeprs.adt: Remove a blank line so that output from xtreeprs does
19870         not have an extra blank line
19871
19872 2005-06-14  Sergey Rybin  <rybin@adacore.com>
19873
19874         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
19875
19876 2005-06-14  Doug Rupp  <rupp@adacore.com>
19877             Vincent Celier  <celier@adacore.com>
19878
19879         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
19880         Update copyright.
19881
19882         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
19883         Remove "Library" command.
19884         Change keyword for style check -gnatyd from NOCRLF to
19885         DOS_LINE_ENDINGS.
19886         Remove useless second style check keyword NONE
19887         Remove help documentation for inexistent style check keyword
19888         RM_COLUMN_LAYOUT.
19889         Add help documentation for style check keywords DOS_LINE_ENDINGS,
19890         UNNECESSARY_BLANK_LINES and XTRA_PARENS
19891         Add UNNECESSARY_BLANK_LINES for -gnatyu
19892         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
19893
19894         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
19895
19896 2005-06-14  Vincent Celier  <celier@adacore.com>
19897
19898         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
19899         gprmake was invoked with -d.
19900         (Compile_Sources): If -d was used, output the "completed ..." message
19901         for each compilation.
19902         (Scan_Arg): Recognize new switch -d
19903         When -c and at least one main is specified, set
19904         Unique_Compile to True to guarantee that no other sources will be
19905         compiled.
19906
19907 2005-06-14  Matthew Heaney  <heaney@adacore.com>
19908
19909         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
19910         * a-swuwha.ads, a-swuwha.adb: New files
19911
19912         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
19913         * a-szuzha.ads, a-szuzha.adb: New files.
19914
19915         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
19916         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
19917         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
19918         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
19919         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
19920         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
19921         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
19922         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
19923         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
19924         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
19925         Ada 2005 RM.
19926
19927 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
19928             Olivier Hainque  <hainque@adacore.com>
19929             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19930             Pascal Obry  <obry@adacore.com>
19931
19932         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
19933
19934         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
19935         making a temporary around a procedure call because of non-addressable
19936         actual parameter.
19937         (process_freeze_entity): If entity is a private type, capture size
19938         information that may have been computed for the full view.
19939         (tree_transform, case N_Allocator): If have initializing expression,
19940         check type for Has_Constrained_Partial_View and pass that to
19941         build_allocator.
19942         (tree_transform, case N_Return_Statement): Pass extra arg to
19943         build_allocator.
19944
19945         * decl.c (annotate_value): Remove early return if -gnatR is not
19946         specified.
19947         (gnat_to_gnu_field): Don't make a packable type for a component clause
19948         if the position is byte aligned, the field is aliased, and the clause
19949         size isn't a multiple of the packable alignment. It serves no useful
19950         purpose packing-wise and would be rejected later on.
19951         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
19952
19953         PR ada/20515
19954         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
19955         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
19956         instead.
19957         (create_concat_name): Idem.
19958
19959 2005-06-10  Robert Dewar  <dewar@adacore.com>
19960             Eric Botcazou  <ebotcazou@adacore.com>
19961             Ben Brosgol  <brosgol@adacore.com>
19962             Cyrille Comar  <comar@adacore.com>
19963             Sergey Rybin  <rybin@adacore.com>
19964             Pascal Obry  <obry@adacore.com>
19965
19966         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
19967         Document second argument (Ada_05) of pragma Obsolescent
19968         Add note that call to subprogram marked with pragma Obsolescent
19969         is now considered to be a violation of program Restrictions
19970         (No_Obsolescent_Features).
19971         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
19972         that only machine-dependent attributes are supported.
19973
19974         * gnat_ugn.texi:
19975         Commented out menu lines and empty section for gnatclean examples
19976         Document -gnatwy/Y
19977         Fix some over long lines
19978         Clarify and enhance documentation of ADA_PROJECT_PATH.
19979         Rework section 2.11.2(3) about linking with a non-GNU compiler.
19980         Mention new switch -fcallgraph-info.
19981         Mention new switch -fstack-usage.
19982         For gnatpp, replace '-notab' with '-N' and add this option to Index
19983         Corrected VMS example.
19984         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
19985         Minor reformatting
19986         Add documentation for -gnatyu switch (unnecessary blank lines)
19987         Document new switch -U for GNAT PRETTY and GNAT METRIC
19988         Add note about Stdcall being handled as C convention on non Windows OS.
19989         Remove some junk typo in description of gnatbind -S switch
19990         Remove reference to Extensions_Allowed pragma
19991         Document the new order of the directories to be searched (source and
19992         object directories of project files before directories in ADA_*_PATH
19993         environment variables.
19994
19995         * g-trasym.ads: Document that IRIX is supported
19996
19997 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
19998
19999         * Makefile.in: Add initialize.o when needed.
20000         Adapt to new VMS package body Symbols and subunits
20001         No specialized version of a-sytaco is needed for VxWorks.
20002
20003         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
20004         * a-zchara.ads, a-widcha.ads: New files.
20005
20006         * system-hpux-ia64.ads: New file.
20007
20008         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
20009         is imported from the VxWorks kernel.
20010
20011 2005-06-14  Robert Dewar  <dewar@adacore.com>
20012
20013         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
20014         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
20015         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
20016         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
20017         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
20018         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
20019         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
20020         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
20021         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
20022         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
20023         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
20024         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
20025
20026 2005-06-14  Thomas Quinot  <quinot@adacore.com>
20027
20028         * xeinfo.adb: Fix typo in comment
20029
20030 2005-06-14  Javier Miranda  <miranda@adacore.com>
20031
20032         * repinfo.ads: Fix typo in comment
20033
20034 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
20035
20036         * s-finimp.adb (Parent_Tag): Delete this imported function (function
20037         Parent_Tag is now in the visible part of Ada.Tags).
20038         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
20039         using imported function.
20040
20041 2005-06-14  Bernard Banner  <banner@adacore.com>
20042
20043         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
20044         also apply for handling support for VxSim 653.
20045
20046 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
20047
20048         * xsnames.adb: Add automatic generation of snames.h.
20049
20050 2005-06-14  Thomas Quinot  <quinot@adacore.com>
20051
20052         * gen-soccon.c: Add IP_MULTICAST_IF constant
20053         Minor reformatting and adjustments to prevent warnings.
20054
20055 2005-06-14  Pascal Obry  <obry@adacore.com>
20056
20057         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
20058
20059 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
20060
20061         * trans.c (gnat_gimplify_expr): Call
20062         recompute_tree_invarant_for_addr_expr when we change
20063         the operand of the ADDR_EXPR.
20064
20065 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20066
20067         * misc.c: Don't include errors.h.
20068
20069 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20070
20071         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
20072
20073 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
20074
20075         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
20076         comment typos.
20077         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
20078
20079 2005-05-16  Nathanael Nerode  <neroden@gcc.gnu.org>
20080
20081         PR ada/20270
20082         * Makefile.in: Make TGT_LIB behave correctly.
20083
20084 2005-04-23  DJ Delorie  <dj@redhat.com>
20085
20086         * misc.c: Adjust warning() callers.
20087
20088 2005-04-16  Laurent Guerby  <laurent@guerby.net>
20089
20090         PR ada/18847
20091         * a-nudira.adb (Value): Check for valid string.
20092         * a-nuflra.adb (Value): Likewise.
20093
20094 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
20095
20096         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
20097
20098 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
20099
20100         * adaint.c, init.c, tracebak.c: Fix comment typos.
20101         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
20102
20103 2005-04-07  Laurent Guerby  <laurent@guerby.net>
20104             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20105
20106         * Makefile.in: Add make ifeq define for hppa linux tasking support.
20107         * system-hpux.ads: Define Signed_Zeros to be True.
20108         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
20109
20110 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
20111
20112         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
20113         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
20114         typos.
20115
20116 2005-03-30  Tom Tromey  <tromey@redhat.com>
20117
20118         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
20119
20120 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
20121
20122         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
20123
20124 2005-03-29  Robert Dewar  <dewar@adacore.com>
20125
20126         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
20127         fixed-point expression has value that is not a multiple of the Small
20128         value.
20129
20130         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
20131
20132         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
20133         nanoseconds.
20134
20135         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
20136
20137 2005-03-29  Vincent Celier  <celier@adacore.com>
20138
20139         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
20140         (Build_Dynamic_Library.Version_String): Return the empty string when
20141         Lib_Version is empty or when the symbol policy is not Autonomous.
20142
20143         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
20144         a symbol is not in the reference symbol file, increase the Major ID
20145         and set the Minor ID to 0.
20146         Use gsmatch=lequal instead of gsmatch=equal
20147
20148 2005-03-29  Doug Rupp  <rupp@adacore.com>
20149
20150         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
20151         name and translate.
20152
20153 2005-03-29  Javier Miranda  <miranda@adacore.com>
20154
20155         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
20156         (Inherit_DT): The first formal has been redefined as a Tag.
20157         This allows us the removal of the subprogram Get_TSD.
20158         (TSD): Replace the call to Get_TSD by the actual code.
20159
20160         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
20161         (Make_DT): Upgrade the call to Inherit_TSD according to the
20162         new interface: the first formal is now a Tag.
20163
20164         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
20165         redefined as a Tag.
20166         This change allows us to remove the subprogram Get_TSD.
20167         (CPP_Get_TSD): Subprogram removed.
20168         (TSD): Replace the call to CPP_Get_TSD by the actual code.
20169
20170         * rtsfind.ads: Remove support to call the run-time
20171         subprogram Get_TSD
20172
20173 2005-03-29  Robert Dewar  <dewar@adacore.com>
20174
20175         * errutil.adb, errout.adb:
20176         Minor comment updates on Line_Terminator references
20177
20178         * par-ch10.adb: Add ??? comment about line terminator
20179
20180         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
20181         (check dos line terminator).
20182         (Check_Line_Max_Length): New procedure, split off from the existing
20183         Check_Line_Terminator routine. Separating this out allows -gnatyf to
20184         be properly recognized.
20185
20186         * styleg.adb: Add ??? comment for line terminator reference
20187
20188         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
20189         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
20190
20191         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
20192         (check dos line terminator).
20193         (Check_Line_Max_Length): New procedure, split off from the existing
20194         Check_Line_Terminator routine. Separating this out allows -gnatyf to
20195         be properly recognized.
20196
20197         * stylesw.ads, stylesw.adb:
20198         Add handling for new -gnatyd switch (check dos line terminator)
20199
20200         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
20201         Recognize -gnatwb/-gnatwB switches
20202         Include Warn_On_Bad_Fixed_Value for -gnatg
20203
20204         * usage.adb:
20205         Add line for new -gnatyd switch (check dos line terminator)
20206
20207         * usage.adb: Add lines for -gnatwb/-gnatwB
20208
20209         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
20210
20211         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
20212
20213         * gnat_ugn.texi: Fix overlong lines
20214         Document new -gnatyd switch
20215         Document new -gnatwb/-gnatwB switches
20216
20217 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
20218
20219         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
20220         order to retrieve the component list of the type, before examining
20221         individual components.
20222
20223         * sem_type.adb (Covers): Types are compatible if one is the base type
20224         of the other, even though their base types might differ when private
20225         views are involved.
20226
20227 2005-03-29  Thomas Quinot  <quinot@adacore.com>
20228
20229         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
20230         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
20231         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
20232         analyzed if expansion is disabled (which could otherwise cause spurious
20233         error messages if expansion has been disabled due to previous
20234         (unrelated) errors).
20235
20236         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
20237         is disabled, the entity denoted by the argument is the access type
20238         itself, not an underlying record type, so there is no need to go back
20239         to the Corresponding_Remote_Type.
20240
20241 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
20242             Robert Dewar  <dewar@adacore.com>
20243
20244         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
20245         expand a call to an instance of
20246         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
20247         Constructor actual of the instance. A class-wide membership
20248         check is also generated, to ensure that the tag passed to the instance
20249         denotes a type in the class.
20250         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
20251         of Name_Generic_Dispatching_Constructor.
20252
20253         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
20254         05 unit for AI-260-02).
20255
20256         * a-tgdico.ads: New file.
20257
20258         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
20259         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
20260
20261         * snames.ads, snames.adb (Preset_Names): Add entry for
20262         Generic_Dispatching_Constructor.
20263
20264         PR ada/20300
20265         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
20266         character type cases.
20267         (Analyze_Subprogram_Renaming): Add special handling for
20268         the case of renaming of stream attributes when the renaming denotes a
20269         generic formal subprogram association for an abstract formal subprogram.
20270         Check that the attribute is a primitive stream attribute (and not
20271         a class-wide stream attribute) and then rewrite the attribute name
20272         as the name of the appropriate compiler-generated stream primitive.
20273
20274 2005-03-29  Robert Dewar  <dewar@adacore.com>
20275
20276         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
20277         recursive calls.
20278         (Is_Possibly_Unaligned_Object): Correct typo that
20279         resulted in inaccurate result for unaligned scalars within records.
20280
20281 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
20282
20283         * freeze.adb (Freeze_Record_Type): If the type of the component is an
20284         itype whose parent is controlled and not yet frozen, do not create a
20285         freeze node for the itype if expansion is disabled.
20286
20287 2005-03-29  Vincent Celier  <celier@adacore.com>
20288
20289         * make.adb (Gnatmake): Don't fail if the main project file is declared
20290         as having no Ada sources. Do not display message "no sources to
20291         compile" in quiet output.
20292
20293 2005-03-29  Doug Rupp  <rupp@adacore.com>
20294
20295         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
20296         extra tools.
20297
20298 2005-03-29  Robert Dewar  <dewar@adacore.com>
20299
20300         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
20301         child.
20302
20303 2005-03-29  Robert Dewar  <dewar@adacore.com>
20304
20305         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
20306         missing TYPE Improve the error message generated when compiling a
20307         limited interface in Ada83 or Ada95 mode.
20308
20309 2005-03-29  Robert Dewar  <dewar@adacore.com>
20310
20311         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
20312         rather than proceed ahead using a junk attribute name.
20313
20314 2005-03-29  Vincent Celier  <celier@adacore.com>
20315
20316         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
20317
20318         * prj-part.adb (Parse_Single_Project): Set the location of a project
20319         on its defining identifier, rather than on the reserved word "project".
20320
20321         * prj-proc.adb (Expression): Adapt to the fact that default of external
20322         references may be string expressions, not always literal strings.
20323         (Recursive_Process): Set Display_Name equal to Name
20324         when Location is No_Location, that is when there is no actual file.
20325         Get the Display_Name of the project from the source, when it is not a
20326         virtual project.
20327         (Process): Use the Display_Name in error messages
20328
20329         * prj-strt.adb (External_Reference): Allow default to be string
20330         expressions, not only literal strings.
20331
20332 2005-03-29  Vincent Celier  <celier@adacore.com>
20333
20334         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
20335         file and the reference symbol file to be the same file.
20336
20337 2005-03-29  Thomas Quinot  <quinot@adacore.com>
20338
20339         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
20340         forbid conversion of a local access-to-subprogram type to a remote one.
20341
20342         * sem_util.adb (Wrong_Type): For a record type that is the expanded
20343         equivalent type for a remote access-to-subprogram type, go back to the
20344         original RAS entity when displaying an error message, so the casing is
20345         the original source casing.
20346
20347 2005-03-29  Robert Dewar  <dewar@adacore.com>
20348
20349         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
20350         on param update.
20351
20352 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
20353
20354         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
20355         subtype if code is being pre-analyzed, to prevent un-expanded
20356         references to protected formals, among others.
20357         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
20358         interpretation that can be a call, include the result of the call as a
20359         possible interpretation of the dereference.
20360
20361         * sem_ch5.adb (Process_Bounds): Determine type of range by
20362         pre-analyzing a copy of the original range, and then analyze the range
20363         with the expected type.
20364
20365         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
20366         with an overloaded prefix where not all interpretations yield an
20367         access to subprogram, do not rewrite node as a call.
20368         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
20369         the node as a call once the context identifies the interpretation of
20370         the prefix whose call yields the context type.
20371         (Valid_Conversion): For the case of a conversion between
20372         local access-to-subprogram types, check subtype conformance using
20373         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
20374         detailed error message.
20375
20376 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
20377
20378         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
20379         indicator, indicate that the formal can never be null.
20380         (Process_Formals): If a formal has a non_null indicator, insert the
20381         resulting subtype immediately before the enclosing subprogram decl,
20382         and not at the beginning of the corresponding declarative part, to
20383         prevent access before elaboration (Ada2005).
20384
20385 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20386
20387         PR ada/19956
20388         * utils.c (finish_record_type): Use variable_size when setting sizes.
20389
20390 2005-03-29  Robert Dewar  <dewar@adacore.com>
20391
20392         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
20393         guarantee Unix style line terminators for the output files, even when
20394         running on windows.
20395
20396 2005-03-29  Robert Dewar  <dewar@adacore.com>
20397
20398         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
20399         buffer if an exception is raised.
20400
20401 2005-03-29  Ed Falis  <falis@adacore.com>
20402
20403         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
20404         VxWorks 653 1.4
20405
20406 2005-03-29  Robert Dewar  <dewar@adacore.com>
20407
20408         * sem_util.ads: Minor reformatting
20409         * gnat_rm.texi: Minor editing.
20410
20411 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
20412
20413         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
20414         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
20415
20416 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
20417
20418         * adaint.c (__gnat_portable_spawn): Adjust cast.
20419
20420 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
20421
20422         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
20423
20424 2005-03-17  Pascal Obry  <obry@adacore.com>
20425
20426         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
20427         used.
20428
20429         * expect.c (__gnat_waitpid): Moved here from adaint.c.
20430         Reimplement under Win32 using Win32 API.
20431
20432         (__gnat_kill) [Win32]: Properly close the process handle before leaving
20433         this routine.
20434
20435 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
20436
20437         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
20438         (DECL_RENAMED_OBJECT): New accessor macro.
20439         (SET_DECL_RENAMED_OBJECT): New setter macro.
20440
20441         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
20442         object in all cases.  Attach the renamed object to the VAR_DECL.
20443         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
20444         field is not prescribed.
20445
20446         * misc.c (gnat_handle_option): Handle -gnatO separately.
20447         (gnat_print_decl) <VAR_DECL>: New case.
20448         Print the DECL_RENAMED_OBJECT node.
20449
20450         * lang.opt:  Declare separate -gnatO option.
20451
20452         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
20453         pointer, replace it with the renamed object.
20454         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
20455         pointer type if the source is not a fat pointer type whose underlying
20456         array has the same non-zero alias set as that of the destination array.
20457
20458 2005-03-17  Javier Miranda  <miranda@adacore.com>
20459
20460         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
20461         (Get_Inheritance_Depth): Removed.
20462         (Set_Inheritance_Depth): Removed.
20463
20464         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
20465         subprogram Get_Expanded_Name because it is not referenced by the
20466         frontend.
20467
20468         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
20469         (CPP_Get_Inheritance_Depth): Removed.
20470         (CPP_Set_Inheritance_Depth): Removed.
20471
20472         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
20473
20474 2005-03-17  Robert Dewar  <dewar@adacore.com>
20475
20476         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
20477         3, since we now expect GCC 3 to do all the work.
20478
20479 2005-03-17  Javier Miranda  <miranda@adacore.com>
20480
20481         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
20482         of one barrier to avoid wrong usage of this attribute.
20483
20484         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
20485         First_Private_Entity.
20486
20487         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
20488         the subprogram against wrong usage.
20489         Adapt the code to traverse the entities in the
20490         scope of a record_type because in addition to its usage regarding
20491         packages, this subprogram is also called by Expand_N_Freeze_Entity
20492         to install the visible declarations of the enclosing scope of a
20493         record_type_with_private to establish the proper visibility before
20494         freezing the entity and related subprograms.
20495
20496 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
20497
20498         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
20499         entry formals.
20500
20501 2005-03-17  Thomas Quinot  <quinot@adacore.com>
20502
20503         * exp_ch3.adb (Check_Attr): New subprogram.
20504         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
20505         into a new Check_Attr subprogram, in order to provide a more
20506         explanatory error message (including the name of the missing attribute).
20507         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
20508         subprogram determines whether a default implementation exists for a
20509         given stream attribute.
20510         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
20511         Determine whether to generate a default implementation for each stream
20512         attribute separately, as this depends on the specific attribute.
20513
20514         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
20515         limited extension where a stream attribute is missing for a limited
20516         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
20517         generate a bogus reference to the missing attribute to prevent
20518         cascaded errors. Instead, generate a null statement.
20519
20520         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
20521         available for a limited type if it has been specified for an ancestor
20522         of the type.
20523
20524 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
20525
20526         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
20527         entity is an operator.
20528
20529 2005-03-17  Thomas Quinot  <quinot@adacore.com>
20530
20531         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
20532         spec, to make this predicate available to other units.
20533
20534         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
20535         reimplementing it.
20536
20537         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
20538         when no distribution runtime library is available.
20539
20540         * sem_res.adb, sem_dist.adb: Disable expansion of remote
20541         access-to-subprogram types when no distribution runtime library is
20542         available.
20543         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
20544         predicate available to other units.
20545
20546         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
20547         spec, to make this predicate available to other units.
20548
20549 2005-03-17  Vincent Celier  <celier@adacore.com>
20550
20551         * make.adb (Insert_Project_Sources): Make sure the Q is always
20552         initialized.
20553
20554         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
20555         the default for the tree, not the global default naming.
20556
20557         * prj-proc.adb (Recursive_Process): No need to put the default naming
20558         in the project data, it's already there.
20559
20560 2005-03-17  Doug Rupp  <rupp@adacore.com>
20561
20562         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
20563
20564         * 5xcrtl.ads: Renamed to...
20565         * s-crtl-vms64.ads: ...this new file
20566
20567 2005-03-17  Robert Dewar  <dewar@adacore.com>
20568
20569         PR ada/19519
20570         * namet.adb (Copy_One_Character): Set proper wide character encoding
20571         for upper half character if we have upper half encoding.
20572
20573 2005-03-17  Robert Dewar  <dewar@adacore.com>
20574
20575         * par.adb (Par): Improved msg for attempt to recompile predefined unit
20576
20577 2005-03-17  Thomas Quinot  <quinot@adacore.com>
20578
20579         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
20580         tagged limited type, the TSS is a newly built renaming declaration:
20581         insert it using Set_TSS, not Copy_TSS.
20582
20583 2005-03-17  Javier Miranda  <miranda@adacore.com>
20584
20585         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
20586         Try_Object_Operation): Analyze the object that is accessible
20587         through the prefix of the subprogram call before we apply
20588         the transformation of the object-operation notation.
20589
20590 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
20591
20592         * s-taprob.adb (Initialize_Protection): Initialize the protected
20593         object's owner to Null_Task.
20594         (Lock): If pragma Detect_Blocking is in effect and the caller of this
20595         procedure is already the protected object's owner then Program_Error
20596         is raised. In addition the protected object's owner is updated.
20597         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
20598         of this procedure is already the protected object's owner then
20599         Program_Error is raised.
20600         In addition the protected object's owner is updated.
20601         (Unlock): Remove the ownership of the protected object.
20602
20603         * s-taprob.ads (Protection): Add the field Owner, used to store the
20604         protected object's owner.
20605         This component is needed for detecting one type of potentially blocking
20606         operations (external calls on a protected subprogram with the same
20607         target object as that of the protected action). Document the rest of
20608         the components.
20609
20610         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
20611         Initialize the protected object's owner to Null_Task.
20612         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
20613         caller of this procedure is already the protected object's owner then
20614         Program_Error is raised.
20615         Do not raise Program_Error when this procedure is called from a
20616         protected action.
20617         (Unlock_Entries): Remove the ownership of the protected object.
20618         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
20619         of this procedure is already the protected object's owner then
20620         Program_Error is raised.
20621         Do not raise Program_Error when this procedure is called from
20622         a protected action.
20623
20624         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
20625         used to store the protected object's owner.
20626
20627         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
20628         effect and this procedure (a potentially blocking operation) is called
20629         from whithin a protected action, Program_Error is raised.
20630         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
20631         and this procedure (a potentially blocking operation) is called from
20632         whithin a protected action, Program_Error is raised.
20633
20634 2005-03-17  Vincent Celier  <celier@adacore.com>
20635             Nicolas Setton  <setton@adacore.com>
20636
20637         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
20638         switch, not supported by the linker on Darwin. Add '_' before
20639         <library>init, as this character is added unconditionally by the
20640         compiler.
20641         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
20642         correct one ".dylib". This fixes detection of the archive files when
20643         building library projects.
20644
20645 2005-03-17  Vincent Celier  <celier@adacore.com>
20646
20647         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
20648         -gnat83, -gnat95 and -gnat05.
20649
20650 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
20651
20652         * gnat_ugn.texi: Document gnatmem restriction
20653
20654 2005-03-17  Thomas Quinot  <quinot@adacore.com>
20655
20656         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
20657         cleanup
20658
20659 2005-03-17  Robert Dewar  <dewar@adacore.com>
20660
20661         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
20662         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
20663         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
20664
20665         * casing.adb: Comment improvements
20666
20667 2005-03-17  Pascal Obry  <obry@adacore.com>
20668
20669         * g-expect.adb: Minor reformatting.
20670
20671 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
20672
20673         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
20674         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
20675         to dependencies.
20676
20677 2005-03-15  Vincent Celier  <celier@adacore.com>
20678
20679         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
20680         Add new parameter In_Tree to specify the project tree: needed
20681         by the project manager. Adapt to changes in project manager
20682         using new parameter In_Tree.
20683
20684 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
20685
20686         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
20687         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
20688         ada/bldtools to avoid make -jN failures.
20689
20690 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
20691
20692         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
20693         to NULL_TREE on entry.
20694
20695 2005-03-15  Robert Dewar  <dewar@adacore.com>
20696
20697         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
20698         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
20699         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
20700         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
20701         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
20702         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
20703         system-interix.ads, system-solaris-sparc.ads,
20704         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
20705         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
20706         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
20707         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
20708         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
20709         Compiler_System_Version to be False.
20710
20711         * opt.ads: Add new flag Opt.Address_Is_Private
20712
20713         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
20714         Add new parameter Compiler_System_Version to avoid checking for
20715         completeness of parameters when compiler is compiling itself.
20716         Allows old versions of GNAT to be compiled with new compiler.
20717
20718 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
20719
20720         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
20721         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
20722         calling thread.
20723         (Stack_Base_Available): New flag.
20724         (Get_Page_Size): New overloaded functions imported from C.
20725         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
20726         PROT_ON, PROT_OFF): New constants.
20727         (mprotect): New function imported from C.
20728         (pthread_teb_t): New record type.
20729
20730         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
20731         (Create_Task): Account for the Yellow Zone and the guard page.
20732
20733 2005-03-15  Vincent Celier  <celier@adacore.com>
20734
20735         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
20736         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
20737         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
20738         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
20739         Library_File_Name_For): Add new parameter In_Tree
20740         to specify the project tree: needed by the project manager.
20741         Adapt to changes in project manager using new parameter In_Tree.
20742         Remove local imports, use functions in System.CRTL.
20743
20744         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
20745         to use the project manager.
20746
20747         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
20748         In_Tree to designate the project tree. Adapt to changes in the project
20749         manager, using In_Tree.
20750
20751         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
20752         Copy_Interface_Sources): Add new parameter In_Tree to specify the
20753         project tree: needed by the project manager.
20754         (Build_Library): Check that Arg'Length >= 6 before checking if it
20755         contains "--RTS=...".
20756
20757         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
20758         Library_File_Name_For): Add new parameter In_Tree to specify the
20759         project tree: needed by the project manager.
20760
20761         * prj.ads, prj.adb: Major modifications to allow several project trees
20762         in memory at the same time.
20763         Change tables to dynamic tables and hash tables to dynamic hash
20764         tables. Move tables and hash tables from Prj.Com (in the visible part)
20765         and Prj.Env (in the private part). Move some constants from the visible
20766         part to the private part. Make other constants deferred.
20767         (Project_Empty): Make it a variable, not a function
20768         (Empty_Project): Add parameter Tree. Returns the data with the default
20769         naming data of the project tree Tree.
20770         (Initialize): After updating Std_Naming_Data, copy its value to the
20771         component Naming of Project Empty.
20772         (Register_Default_Naming_Scheme): Use and update the default naming
20773         component of the project tree, instead of the global variable
20774         Std_Naming_Data.
20775         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
20776         Tree is not defaulted, return the default naming data of the Tree.
20777         (Initial_Buffer_Size): Constant moved from private part
20778         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
20779         variables initialized in procedure Initialize.
20780         (Add_To_Buffer): Add two in out parameters to replace global variables
20781         Buffer and Buffer_Last.
20782         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
20783         functions.
20784         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
20785         hash tables.
20786         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
20787         for the project tree.
20788         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
20789         constant at the beginning of the package spec, so that they cane be used
20790         in subprograms before their full declarations.
20791         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
20792         (Empty_Project): Add parameter of type Project_Node_Ref
20793         (Private_Project_Tree_Data): Add component Default_Naming of type
20794         Naming_Data.
20795         (Buffer, Buffer_Last): remove global variables
20796         (Add_To_Buffer): Add two in out parameters to replace global variables
20797         Buffer and Buffer_Last.
20798         (Current_Packages_To_Check): Remove global variable
20799         (Empty_Name): Move to private part
20800         (No-Symbols): Make it a constant
20801         (Private_Project_Tree_Data): New type for the private part of the
20802         project tree data.
20803         (Project_Tree_Data): New type for the data of a project tree
20804         (Project_Tree_Ref): New type to designate a project tree
20805         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
20806         for the project tree.
20807
20808         * prj-attr.ads: Add with Table; needed, as package Prj no longer
20809         imports package Table.
20810
20811         * prj-com.adb: Remove empty, no longer needed body
20812
20813         * prj-com.ads: Move most of the content of this package to package Prj.
20814
20815         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
20816         designate the project node tree and Packages_To_Check to replace
20817         global variable Current_Packages_To_Check.
20818         Add new parameters In_Tree and Packages_To_Check to local subprograms,
20819         when needed. Adapt to changes in project manager with project node tree
20820         In_Tree.
20821
20822         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
20823         project tree to most subprograms. Move tables and hash tables to
20824         private part of package Prj.
20825         Adapt to changes in project manager using project tree In_Tree.
20826
20827         * prj-makr.adb (Tree): New constant to designate the project node tree
20828         Adapt to change in project manager using project node tree Tree
20829
20830         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
20831         display the Library_Src_Dir and the Library_Dir.
20832         Add new parameter In_Tree to designate the project node tree to most
20833         subprograms. Adapt to changes in the project manager, using project tree
20834         In_Tree.
20835         (Check_Naming_Scheme): Do not alter the casing on platforms where
20836         the casing of file names is not significant.
20837         (Check): Add new parameter In_Tree to designate the
20838
20839         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
20840         designate the project tree.
20841         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
20842
20843         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
20844         to replace those that were in the private part of package Prj.
20845         Add new parameter In__Tree to designate the project node tree to most
20846         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
20847         (Post_Parse_Context_Clause): When specifying the project node of a with
20848         clause, indicate that it is a limited with only if there is "limited"
20849         in the with clause, not necessarily when In_Limited is True.
20850         (Parse): Add new parameter In_Tree to designate the project node tree
20851
20852         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
20853         designate the project node tree. Adapt to change in Prj.Tree with
20854         project node tree In_Tree.
20855
20856         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
20857         tree In_Tree in the call to function Empty_Process to give its initial
20858         value to the project data Processed_Data.
20859         Add new parameters In_Tree to designate the project tree and
20860         From_Project_Node_Tree to designate the project node tree to several
20861         subprograms. Adapt to change in project manager with project tree
20862         In_Tree and project node tree From_Project_Node_Tree.
20863
20864         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
20865         to replace those that were in the private part of package Prj.
20866         Add new parameter In_Tree to designate the project node tree to most
20867         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
20868
20869         * prj-tree.ads, prj-tree.adb: Add new parameter of type
20870         Project_Node_Tree_Ref to most subprograms.
20871         Use this new parameter to store project nodes in the designated project
20872         node tree.
20873         (Project_Node_Tree_Ref): New type to designate a project node tree
20874         (Tree_Private_Part): Change table to dynamic table and hash tables to
20875         dynamic hash tables.
20876
20877         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
20878         the project tree to most subprograms. Adapt to changes in project
20879         manager using project tree In_Tree.
20880
20881         * makegpr.adb (Project_Tree): New constant needed to use project
20882         manager.
20883
20884 2005-03-15  Olivier Hainque  <hainque@adacore.com>
20885
20886         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
20887         for sigactions with SA_SIGINFO set. Call
20888         __gnat_adjust_context_for_raise before raising, to perform the
20889         potentially required adjustments to the machine context for the GCC
20890         unwinder.
20891
20892         * raise.h (__gnat_adjust_context_for_raise): New prototype.
20893
20894         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
20895         Adjust PC by one in the provided machine context.
20896         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
20897         so that the handler is passed the context structure to adjust prior to
20898         the raise.
20899         (__gnat_error_handler) HPUX: Adjust the signature to match what an
20900         SA_SIGINFO sigaction should look like. Call
20901         __gnat_adjust_context_for_raise before actually raising.
20902         (__gnat_adjust_context_for_raise): Default noop to help PC
20903         adjustments before raise from signal handlers.
20904         (__gnat_error_handler): Indirectly call a predicate function to
20905         determine if a condition should be resignaled or not.
20906         (__gnat_set_resignal_predicate): User interface to modify the predicate.
20907         (__gnat_default_resignal_p): Default GNAT predicate.
20908
20909 2005-03-15  Doug Rupp  <rupp@adacore.com>
20910
20911         * adaint.c: Prefix #include of VMS system header files with vms/
20912         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
20913         Do not define a dummy function "convert_addresses" under Darwin,
20914         not needed.
20915
20916         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
20917         with vms/
20918
20919 2005-03-15  Nicolas Setton  <setton@adacore.com>
20920
20921         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
20922         PPC/AIX.
20923
20924 2005-03-15  Robert Dewar  <dewar@adacore.com>
20925
20926         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
20927         AI-386.
20928
20929         * a-retide.ads: Minor comment changes
20930
20931 2005-03-15  Robert Dewar  <dewar@adacore.com>
20932
20933         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
20934         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
20935         Realloc_For_Chunk to private part of package.
20936         New subprograms for AI-301
20937
20938         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
20939         Get_Line procedure.
20940         Avoid unnecessary use of Get/Set_Wide_String
20941
20942 2005-03-15  Robert Dewar  <dewar@adacore.com>
20943
20944         PR ada/13470
20945         * a-stunau.ads, a-stunau.adb:
20946         Change interface to allow efficient (and correct) implementation
20947         The previous changes to allow extra space in unbounded strings had
20948         left this interface a bit broken.
20949
20950         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
20951
20952         * g-spipat.ads, g-spipat.adb: New interface for Get_String
20953         Minor reformatting (function specs)
20954
20955         * g-spitbo.adb: New interface for Get_String
20956
20957         * g-spitbo.ads: Minor reformatting
20958
20959         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
20960
20961         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
20962
20963 2005-03-15  Javier Miranda  <miranda@adacore.com>
20964             Robert Dewar  <dewar@adacore.com>
20965             Thomas Quinot  <quinot@adacore.com>
20966             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20967
20968         * atree.ads, atree.adb: Add support for Elist24 field
20969
20970         * atree.h: Fix wrong definition of Field27
20971         Add support for Elist16 field
20972         Add support for Elist24 field
20973
20974         * einfo.ads, einfo.adb (Abstract_Interfaces,
20975         Set_Abstract_Interfaces): New subprograms.
20976         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
20977         subprograms.
20978         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
20979         entities rather than a single node.
20980         (Is_Interface, Set_Is_Interface): New subprogram
20981         (First_Tag_Component): New syntesized attribute
20982         (Next_Tag_Component): New synthesized attribute
20983         (Write_Entity_Flags): Upgraded to write Is_Interface
20984         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
20985         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
20986         (Task_Body_Procedure): New subprogram to read this attribute.
20987         (Set_Task_Body_Procedure): New subprogram to set this attribute.
20988         (Has_Controlled_Component): Now applies to all entities.
20989         This is only a documentation change, since it always worked to apply
20990         this to other than composite types (yielding false), but now this is
20991         official.
20992         Update documentation on Must_Be_Byte_Aligned for new spec
20993
20994         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
20995         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
20996         uses of the Access_Disp_Table attribute to reference the first dispatch
20997         table associated with a tagged type. As
20998         part of the implementation of abstract interface types,
20999         Access_Disp_Table has been redefined to contain a list of dispatch
21000         tables (rather than a single dispatch table).
21001         Similarly, upgrade all the references to Tag_Component by the
21002         new attribute First_Tag_Component.
21003         (Find_Inherited_TSS): Moved to exp_tss.
21004         Clean up test in Expand_N_Object_Declaration for cases
21005         where we need to do a separate assignment of the initial value.
21006         (Expand_N_Object_Declaration): If the expression in the
21007         declaration of a tagged type is an aggregate, no need to generate an
21008         additional tag assignment.
21009         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
21010         is to be deleted.
21011         Bit packed array ops are only called if operands are known to be
21012         aligned.
21013         (Component_Equality): When returning an N_Raise_Program_Error statement,
21014         ensure that its Etype is set to Empty to avoid confusing GIGI (which
21015         expects that only expressions have a bona fide type).
21016         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
21017         determine the amount of data to be copied.
21018
21019         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
21020         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
21021             INTERFACE_TYPE_DEFINITION ::=
21022               [limited | task | protected | synchronized] interface
21023                 [AND interface_list]
21024
21025         * par-ch3.adb (P_Type_Declaration): Modified to give support to
21026         interfaces.
21027         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
21028         interfaces.
21029         (P_Interface_Type_Definition): New subprogram that parses the new
21030         syntax rule of Ada 2005 interfaces
21031         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
21032         messages by the correct RENAMES (quotes removed).
21033
21034         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
21035         attribute First_Tag_Component.
21036
21037         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
21038         (Interface_List, Set_Interface_List): New subprograms.
21039         (Interface_Present, Set_Interface_Present): New subprograms.
21040         (Limited_Present, Set_Limited_Present): Available also in derived
21041         type definition nodes.
21042         (Protected_Present, Set_Protected_Present): Available also in
21043         record type definition and
21044         derived type definition nodes.
21045         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
21046         (Task_Present, Set_Task_Present): New subprogram.
21047         (Task_Body_Procedure): Removed.
21048         (Set_Task_Body_Procedure): Removed.
21049         These subprogram have been removed because the attribute
21050         Task_Body_Procedure has been moved to the corresponding task type
21051         or task subtype entity to leave a field free to store the list
21052         of interfaces implemented by a task (for AI-345)
21053         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
21054         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
21055         expression flag Do_Range_Check
21056         (Exception_Junk): Change to Flag7 to accomodate above change
21057         (Box_Present, Default_Name, Specification, Set_Box_Present,
21058         Set_Default_Name, Set_Specification): Expand the expression
21059         "X in N_Formal_Subprogram_Declaration" into the corresponding
21060         two comparisons. Required to use the csinfo tool.
21061
21062         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
21063         "with string" given.
21064
21065         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
21066         expression given.
21067
21068         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
21069         in 2005 mode
21070
21071         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
21072         attribute Task_Body_Procedure rather than the old semantic field that
21073         was available in the task_type_declaration node.
21074
21075         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
21076         interface type definitions.
21077         (P_Formal_Derived_Type_Definition): Modified to handle the list of
21078         interfaces.
21079
21080         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
21081         task type declaration.
21082         (P_Protected): Modified to handle the list of interfaces in a
21083         protected type declaration.
21084
21085 2005-03-15  Doug Rupp  <rupp@adacore.com>
21086             Vincent Celier  <celier@adacore.com>
21087
21088         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
21089         (Gen_Output_File_C): Likewise.
21090         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
21091
21092 2005-03-15  Thomas Quinot  <quinot@adacore.com>
21093
21094         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
21095         is an N_Raise_Constraint_Error node, create a new copy of it without
21096         going through a call to Duplicate_Subexpr.
21097
21098 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
21099             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21100             Nicolas Setton  <setton@adacore.com>
21101             Ed Schonberg  <schonberg@adacore.com>
21102
21103         PR ada/19900
21104         PR ada/19408
21105         PR ada/19140
21106         PR ada/20255
21107         * decl.c (gnat_to_gnu_field): Reject aliased components with a
21108         representation clause that prescribes a size not equal to the rounded
21109         size of their types.
21110         (gnat_to_gnu_entity, case E_Component): Always look at
21111         Original_Record_Component if Present and not the entity.
21112         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
21113         of tagged extension types by not making field for components that are
21114         inside the parent.
21115         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
21116         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
21117         expression to the type of the object when the object is constant.
21118         Reverse defer_debug_incomplete_list before traversing it, so that trees
21119         are processed in the order at which they were added to the list. This
21120         order is important when using the stabs debug format.
21121         If we are deferring the output of debug information, also defer this
21122         output for a function return type.
21123         When adding fields to a record, prevent emitting debug information
21124         for incomplete records, emit the information only when the record is
21125         complete.
21126         (components_to_record): New parameter defer_debug.
21127         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
21128         (gnat_to_gnu_field_decl): New function.
21129         (substitution_list, annotate_rep): Call it.
21130         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
21131         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
21132         No longer update discriminants to not be a COMPONENT_REF.
21133         (copy_alias_set): Strip padding from input type; also handle
21134         unconstrained arrays properly.
21135
21136         * gigi.h (write_record_type_debug_info): New function.
21137         Convert to use ANSI-style prototypes. Remove unused
21138         declarations for emit_stack_check, elab_all_gnat and
21139         set_second_error_entity.
21140         (gnat_to_gnu_field_decl): New decl.
21141
21142         * utils.c (write_record_type_debug_info): New function.
21143         (finish_record_type): Delegate generation of debug information to
21144         write_record_type_debug_info.
21145         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
21146         (update_pointer_to): Fix pasto.
21147         (convert) <UNION_TYPE>: Accept slight type variations when
21148         converting to an unchecked union type.
21149
21150         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
21151         replace the N_Freeze_Entity with a null statement.
21152
21153         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
21154         within a constrained subcomponent of an enclosing record, place the
21155         freeze nodes in the scope stack entry for the enclosing record.
21156         (Undelay_Type): New Subprogram.
21157         (Set_Small_Size): Pass T, the type to modify; all callers changed.
21158         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
21159         within records; allow them to have freeze nodes if their base types
21160         aren't frozen yet.
21161
21162         * exp_util.adb (Remove_Side_Effects): Properly test for
21163         Expansion_Delayed and handle case when it's inside an
21164         N_Qualified_Expression.
21165
21166         * sem_ch3.adb (Derived_Type_Declaration): New predicate
21167         Comes_From_Generic, to recognize accurately that the parent type in a
21168         derived type declaration can be traced back to a formal type, because
21169         it is one or is derived from one, or because its completion is derived
21170         from one.
21171         (Constrain_Component_Type): If component comes from source and has no
21172         explicit constraint, no need to constrain in in a subtype of the
21173         enclosing record.
21174         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
21175         Minor change to propagate Is_Ada_2005 flag
21176
21177         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
21178         Expansion_Delayed is False.
21179         (assoc_to_constructor): Ignore fields that have a
21180         Corresponding_Discriminant.
21181         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
21182         function returns "by target", dereference the target pointer using the
21183         type of the actual return value.
21184         <all>: Be prepared for a null gnu_result.
21185         (processed_inline_subprograms): Check flag_really_no_inline
21186         instead of flag_no_inline.
21187         (set_second_error_entity): Remove unused function.
21188         (gnat_to_gnu, case N_Selected_Component): Call
21189         gnat_to_gnu_field_decl.
21190         (assoc_to_constructor): Likewise.
21191
21192 2005-03-15  Robert Dewar  <dewar@adacore.com>
21193             Ed Schonberg  <schonberg@adacore.com>
21194             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21195
21196         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
21197         Must_Be_Byte_Aligned for cases where we do not need to use a
21198         System.Pack_nn unit.
21199
21200         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
21201         as procedures.
21202         Needed now that we do some processing for IN parameters as well. This
21203         may well fix some unrelated errors.
21204         (Expand_Call): Handle case of unaligned objects (in particular those
21205         that come from packed arrays).
21206         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
21207         renamed entity is an inherited operation, re-expand the call using the
21208         original operation, which is the one to call.
21209         Detect attempt to inline parameterless recursive subprogram.
21210         (Represented_As_Scalar): Fix to work properly with private types
21211         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
21212         accurate estimate. Yields True in far fewer cases than before,
21213         improving the quality of code that depends on this test.
21214
21215         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
21216         over both visible and private declarations to remove them from tree,
21217         and mark subprograms declared in package as eliminated, to prevent
21218         spurious use in subsequent compilation of generic units in the context.
21219
21220         * exp_util.ads: Minor cleanup in variable names
21221
21222         * sem_eval.ads, sem_eval.adb: Minor reformatting
21223         (Compile_Time_Known_Bounds): New function
21224
21225 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
21226
21227         * exp_ch7.adb (Convert_View): Use base types of underlying types when
21228         determining whether an unchecked conversion is needed for the argument
21229         of an initialization call.
21230
21231 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
21232
21233         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
21234         that appears in the instantiation rather than the internal subtype
21235         generated in the wrapper package, to avoid anomalies in gigi when the
21236         target is derived from a private type whose full view is an access type.
21237
21238 2005-03-15  Robert Dewar  <dewar@adacore.com>
21239
21240         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
21241         not needed.
21242         Add documentation to replace the use of this flag
21243         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
21244         the x86_64.
21245
21246 2005-03-15  Thomas Quinot  <quinot@adacore.com>
21247
21248         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
21249         here from exp_attr so it can be shared between exp_attr and exp_dist.
21250         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
21251         all TSS names, not a subset thereof, and the previous name introduced
21252         an unnecessarily confusion that a distinction might exist between
21253         "OK" TSS names and some "not OK" TSS names.
21254
21255 2005-03-15  Doug Rupp  <rupp@adacore.com>
21256
21257         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
21258         Command_Name.
21259
21260 2005-03-15  Pascal Obry  <obry@adacore.com>
21261             Eric Botcazou  <ebotcazou@adacore.com>
21262
21263         PR ada/20226
21264         PR ada/20344
21265         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
21266         when IN_RTS. This is to work around a bootstrap path problem.
21267
21268         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
21269         table and pass it to __gnat_install_SEH_handler().
21270         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
21271
21272         * lang.opt: Fix specification of -fRTS=.
21273
21274 2005-03-15  Doug Rupp  <rupp@adacore.com>
21275             Bernard Banner  <banner@adacore.com>
21276             Vincent Celier  <celier@adacore.com>
21277             Arnaud Charlet  <charlet@adacore.com>
21278
21279         PR ada/6852
21280         This change works fine when gnatlib is built from the gcc directory,
21281         but does not work when using the libada Makefile, since GCC_FOR_TARGET
21282         is not passed to ada/Makefile.in, so more work is needed by a
21283         Makefile/configure expert.
21284
21285         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
21286         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
21287         Setup gnatlink switch -M for x86_64 linux, as it is already setup
21288         for Linux x86.
21289         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
21290         Run ranlib on libgccprefix.a
21291         Define PREFIX_OBJS for Darwin, to build libgccprefix.
21292         (ADA_INCLUDE_SRCS): Split Ada packages.
21293
21294 2005-03-15  Robert Dewar  <dewar@adacore.com>
21295
21296         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
21297
21298         * impunit.adb: Add GNAT.UTF_32
21299
21300         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
21301
21302         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
21303         now uses GNAT.UTF_32).
21304
21305         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
21306         capabilities for categorizing characters using Unicode categories
21307
21308 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
21309
21310         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
21311         instantiation that has been rewritten as a package body, retrieve spec
21312         to generate proper name for implicit_with_clause.
21313         (Install_Parents): Recognize a parent that is an instantiation but has
21314         been rewritten as a package declaration during analysis.
21315
21316 2005-03-15  Javier Miranda  <miranda@adacore.com>
21317             Ed Schonberg  <schonberg@adacore.com>
21318
21319         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
21320         parameter reported some error we immediately return. This improves the
21321         behaviour of the frontend in case of errors.
21322         (Install_Parent, Remove_Parent): Introduce new flag
21323         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
21324         ancestor of a generic child unit, when the child is being instantiated.
21325         (Inline_Instance_Body): If we are compiling the private
21326         part or the body of a child unit, restore the proper visibility of the
21327         parents after compiling the instance body.
21328
21329 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
21330             Javier Miranda  <miranda@adacore.com>
21331
21332         PR ada/15608
21333         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
21334         of a private type, in which case it is underlying_type that denotes
21335         the proper task. Also modified to use the new entity attribute
21336         that is directly available in the task type and task subtype entities
21337         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
21338         arrays when other dimensions than the first are constrained by
21339         discriminants of an enclosing record.
21340         (Insert_Explicit_Dereference): If the prefix is an indexed component or
21341         a combination of indexed and selected components, find ultimate entity
21342         and generate the appropriate reference for it, to suppress spurious
21343         warnings.
21344         (Note_Possible_Modification): If an entity name has no entity, return.
21345         (Is_Variable): A function call never denotes a variable.
21346         (Requires_Transient_Scope): For record types, recurse only on
21347         components, not on internal subtypes that may have been generated for
21348         constrained components.
21349
21350 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
21351
21352         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
21353         Eliminated as candidates for resolution. Both efficient, and avoids
21354         anomalies with operators declared in deleted code.
21355         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
21356         expansion is disabled (as when compiling a generic) to prevent spurious
21357         warnings on prefixes of selected components.
21358
21359 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
21360
21361         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
21362         attached to a list before checking whether it appears in the private
21363         declarations of the current package.
21364         (Make_Inequality_Operator): Insert declaration in proper declarative
21365         list rather than just setting the Parent field, so that
21366         Is_Private_Declaration can handle it properly.
21367
21368 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
21369
21370         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
21371         a renaming a body, check that the renamed subprogram in not intrinsic.
21372         (Find_Direct_Name): If several use_visible entities hide
21373         each other, and the context is a predefined file compiled through
21374         rtsfind, keep only the entity that comes from a predefined file.
21375
21376 2005-03-15  Geert Bosch  <bosch@adacore.com>
21377
21378         * s-fatgen.adb (Valid): Extend special exceptions to account for long
21379         long float padding to also cover AMD64 and IA64.
21380
21381 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
21382
21383         * s-imgwch.adb: Add with and use of Interfaces.
21384         (Img_Wide_Character): Change type of Val to Unsigned_16.
21385         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
21386
21387 2005-03-15  Matthew Gingell  <gingell@adacore.com>
21388
21389         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
21390
21391 2005-03-15  Robert Dewar  <dewar@adacore.com>
21392
21393         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
21394
21395         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
21396
21397         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
21398
21399 2005-03-15  Robert Dewar  <dewar@adacore.com>
21400
21401         * s-bitops.adb, s-bitops.ads,
21402         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
21403         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
21404         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
21405         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
21406         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
21407         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
21408         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
21409         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
21410         reformatting.
21411
21412 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
21413
21414         * utils2.c (build_binary_op): Fix typo.
21415
21416 2005-03-15  Doug Rupp  <rupp@adacore.com>
21417
21418         * s-crtl.ads (popen,pclose): New imports.
21419
21420 2005-03-15  Cyrille Comar  <comar@adacore.com>
21421
21422         * comperr.adb (Compiler_Abort): remove references to obsolete
21423         procedures in the bug boxes for various GNAT builds.
21424
21425 2005-03-15  Vincent Celier  <celier@adacore.com>
21426
21427         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
21428
21429 2005-03-15  Geert Bosch  <bosch@adacore.com>
21430             Arnaud Charlet  <charlet@adacore.com>
21431             Robert Dewar  <dewar@adacore.com>
21432             Cyrille Comar  <comar@adacore.com>
21433             Sergey Rybin  <rybin@adacore.com>
21434
21435         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
21436         too specific and long-winded to be appropriate for the GNAT User's
21437         Guide.
21438         Warn about use of GCC switches not documented in the GNAT User's Guide,
21439         as these may cause generated code to not conform to Ada semantics.
21440         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
21441         Add documentation for -gnat95 and -gnat05 switches
21442         Remove paragraph documenting obsolete way to refer to third party
21443         libraries.
21444         Add a few references to Ada_05 that were missing.
21445         Update documentation on -gnatZ/-gnatL.
21446         Document limitation when using -m64 under Solaris.
21447         Change the "Name Casing" subsection of the pretty-printer section
21448         according to the changes in the dictionary processing.
21449
21450         * gnat_rm.texi: Document the Ada_05 pragma.
21451         Section on record representation clauses describes the new more
21452         relaxed rules about placement of large packed bit array components.
21453         Add documentation of GNAT.UTF_32
21454
21455 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
21456
21457         * misc.c (gnat_post_options): Turn off structural
21458         aliasing for now.
21459
21460 2005-03-08  Laurent Guerby  <laurent@guerby.net>
21461
21462         * system-linux-sparc.ads: Fix typo in previous commit.
21463
21464 2005-03-07  James A. Morrison  <phython@gcc.gnu.org>
21465             Laurent Guerby  <laurent@guerby.net>
21466
21467         PR ada/20035
21468         * system-linux-sparc.ads: New.
21469         * Makefile.in: Add sparc linux entry.
21470
21471 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
21472
21473         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
21474         parameters as unused.
21475
21476 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
21477         Partial merge from libada-gnattools-branch:
21478
21479         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
21480         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
21481         into code in gnattools/Makefile.in.  Remove direct dependencies on
21482         stamp-tools by tools clauses.
21483         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
21484         * config-lang.in: Add gnattools to $lang_dirs.
21485
21486 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
21487
21488         PR ada/19942
21489         * utils.c (gnat_type_for_mode): Return null instead of ICE because
21490         we asked for an unknown mode.
21491
21492 2005-02-12  Richard Henderson  <rth@redhat.com>
21493
21494         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
21495         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
21496
21497 2005-02-10  Andreas Jaeger  <aj@suse.de>
21498
21499         * init.c (__gnat_initialize): Mark parameter as unused.
21500
21501 2005-02-09  Doug Rupp  <rupp@adacore.com>
21502
21503         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
21504         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
21505
21506 2005-02-09  Doug Rupp  <rupp@adacore.com>
21507
21508         * gnatchop.adb (dup, dup2),
21509         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
21510
21511         * gnatlbr.adb (mkdir),
21512         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
21513
21514         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
21515
21516 2005-02-09  Doug Rupp  <rupp@adacore.com>
21517
21518         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
21519
21520 2005-02-09  Robert Dewar  <dewar@adacore.com>
21521             Thomas Quinot  <quinot@adacore.com>
21522             Javier Miranda  <miranda@adacore.com>
21523             Pascal Obry  <obry@adacore.com>
21524             Ed Schonberg  <schonberg@adacore.com>
21525             Doug Rupp  <rupp@adacore.com>
21526             Gary Dismukes  <dismukes@adacore.com>
21527             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21528
21529         * g-zstspl.ads: New file.
21530
21531         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
21532
21533         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
21534         Ada 95 mode
21535         Add definition of Wide_Wide_Space for AI-285
21536
21537         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
21538         interface (to support Ada 95 and Ada 2005 units).
21539         Add Unbounded_IO files
21540         Add entries for Wide_Wide packages for AI-285
21541         Add list of containers packages to Ada 2005 unit list
21542
21543         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
21544         support new Unbounded_IO package cleanly.
21545
21546         * g-utf_32.ads, g-utf_32.adb: New files.
21547
21548         * Makefile.rtl: Add entry for g-utf_32
21549         Add new files for Unbounded_IO
21550         Adjust make file for new AI-285 wide wide packages
21551         Add AI-302 containers to the run time.
21552
21553         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
21554         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
21555         subprograms for AI-301.
21556
21557         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
21558
21559         * a-stunau.ads: Minor comment correction
21560
21561         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
21562         etc.
21563         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
21564         (Check_RPC): Update to match changes in expanded code.
21565         Clean up unused entity.
21566
21567         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
21568         was not taken into account.
21569         This includes proper initialization with Normalize_Scalars.
21570         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
21571         normalize scalars cases (particularly the latter) to do a better job
21572         of finding invalid representations.
21573
21574         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
21575
21576         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
21577         used
21578
21579         * exp_dist.adb: Add support for wide wide character type
21580         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
21581         private part, generate stub bodies at the end of the private part,
21582         not the visible part.
21583         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
21584         PolyORB support.
21585         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
21586         generic wrapper to execute final processing after completing the
21587         expansion of the RPC receiver for an RACW.
21588
21589         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
21590         packages and attributes.
21591         (Preset_Names): Addition of the new reserved words of Ada 2005,
21592         that is interface, overriding and synchronized.
21593         (Get_Pragma_Id): Give support to the use of the new reserved word
21594         "interface" as a pragma name.
21595         (Is_Pragma_Name): Give support to the use of the new reserved word
21596         "interface" as a pragma name.
21597         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
21598         attribute implementation.
21599
21600         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
21601         checks to entities that are output parameters of Asm operations.
21602         Handle the Stream_Size attribute.
21603         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
21604
21605         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
21606
21607         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
21608         for second parameter being 0.0.
21609         Add support for wide wide character type.
21610         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
21611
21612         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
21613         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
21614         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
21615         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
21616         for wide wide character cases.
21617
21618         * cstand.adb: Create entities for Wide_Wide_Character and
21619         Wide_Wide_String.
21620
21621         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
21622         accordance with AI-258.
21623         Add new declarations for 16/32 bit C character types (Part of AI285)
21624
21625         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
21626         (Obsolescent_Warning): New field
21627         (Rep_Clause): New local subprogram used to share code. Returns the rep
21628         clause for which the name is given in parameter.
21629         (Has_Stream_Size_Clause): New routine.
21630         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
21631         (Address_Clause): Implementation is now using Rep_Clause.
21632         (Alignment_Clause): Idem.
21633         (Size_Clause): Idem.
21634
21635         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
21636         entity in non-Ada 2005 mode and generate warning.
21637
21638         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
21639         (Prag): Code cleanup. Remove old gnat pragma "overriding"
21640
21641         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
21642         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
21643         on the named unit if the pragma is not in the current compilation unit,
21644         so that elaboration calls in the current unit can set up an elaboration
21645         dependency on the named unit, as needed.
21646         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
21647         subprogram as well as for subprograms declared within a package.
21648         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
21649         pragma overriding.
21650
21651         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
21652         to z) to avoid some instances of duplication for Wide_Wide packages.
21653
21654         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
21655         characters.
21656
21657         * scn.adb: Char_Literal_Value field is now a Uint
21658
21659         * scng.adb: Significant rewrite to handle new Ada 2005 features
21660         allowing wide and wide wide characters in program text, e.g. for
21661         identifiers, as described in AI-285.
21662         (Set_Reserved): New procedure, makes setting up keywords cleaner.
21663         (Initialize_Scanner): Register the new reserved words of Ada 2005.
21664         (Scan): Give support to the new reserved words.
21665
21666         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
21667         warning notifying that interface, overriding, and synchronized are
21668         new reserved words.
21669         (P_Pragma): Allow the use of the new reserved word "interface" as
21670         a pragma name.
21671
21672         * gnatls.adb, gnatbind.adb,
21673         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
21674         identifiers named "interface" to "SAL_Interface".
21675
21676         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
21677         (Structured Exception handling).
21678         (Gen_Main_C): Idem.
21679
21680         * bindgen.adb:
21681         (Gen_Main_Ada): Set the default exit code if specified.
21682         (Gen_Main_C): Likewise.
21683         Part of *DC20-006.
21684         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
21685         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
21686
21687         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
21688         new -Xnnn switch.
21689
21690         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
21691         has a collision with the new Ada 2005 "interface" reserved word.
21692
21693         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
21694         generate a warning notifying that interface, overriding, and
21695         synchronized are new reserved words.
21696
21697         * scans.ads (Token_Type): Addition of the tokens corresponding to the
21698         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
21699         and Tok_Synchronized.
21700
21701         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
21702         "dispatching" rather than "primitive" operations, since dispatching
21703         calls are now allowed to abstract formal subprograms (which are not
21704         primitive).
21705         Char_Literal_Value field is now a Uint
21706         (Resolve_Slice): If the prefix is an access to an unconstrained array,
21707         compute the actual subtype of the designated object to impose the proper
21708         index constraints.
21709         (Resolve_Selected_Component): Do not insert an access check if the
21710         prefix is an access type: such a node is expanded into an explicit
21711         dereference, on which the access check is performed anyway. Removes
21712         expensive duplicate checks.
21713         (Resolve_Call): Use new flag Is_Obsolescent and field
21714         Obsolescent_Warning so that pragma Obsolescent works on library
21715         subprograms.
21716         Add support for wide wide character type
21717         (Resolve_Allocator): Replace the error message on wrong null-exclusion
21718         value by a warning message.
21719         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
21720         as fixed-point, and one of the operands is non-static and universal, it
21721         can only be an illegal exponentiation operation, in which case there is
21722         no real value to retrieve.
21723
21724         * exp_strm.adb: Add support for wide wide character type
21725         (Build_Elementary_Input_Call): Compute the size of the stream element by
21726         querying the rep chain to find the Stream_Attribute attribute value.
21727         (Build_Elementary_Write_Call): Ditto.
21728
21729         * sem_aggr.adb: Char_Literal_Value field is now a Uint
21730         Add support for wide wide character type
21731         Replace the error messages on wrong null-exclusion value by warnings
21732         as described in Ada 2005.
21733         (Resolve_Extension_Aggregate): Document the fact that the error
21734         message on class-wide expressions in extensions aggregates.
21735
21736         * sem_case.adb: Add support for wide wide character type
21737
21738         * sem_ch13.adb: Add support for wide wide character type
21739         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
21740
21741         * sem_ch3.adb: Add support for wide wide character type
21742         (Process_Subtype): If constraint is illegal for the type, set Ekind of
21743         now-useless Itype, to prevent cascaded errors on a compiler built
21744         without -gnatp.
21745
21746         * sem_ch8.adb: Add with and use of Sem_Disp.
21747         (Analyze_Subprogram_Renaming): Replace unclean uses of
21748         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
21749         of Corresponding_Spec to Empty).
21750         (Attribute_Renaming): Replace use of Corresponding_Spec with
21751         Corresponding_ Formal_Spec and simplify condition.
21752         (Use_One_Package): Check that scope of homonym of identifier is defined,
21753         before checking whether it is a wrapper package.
21754         Add support for wide wide character type
21755
21756         * sem_eval.adb: Add support for wide wide character type.
21757         (Eval_Arithmetic_Op): Check for compile time known signed integer
21758         overflow in the non-static case.
21759         (Subtypes_Statically_Match): A formal scalar type and its base type do
21760         not statically match.
21761
21762         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
21763         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
21764         subtype).
21765         (Unit_Declaration_Node): Ditto.
21766         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
21767         has a packed array type, the prefix has been rewritten into a type
21768         conversion. Determine variable-ness from the converted expression.
21769         Handle wide wide character cases.
21770
21771         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
21772
21773         * stringt.ads, stringt.adb: Handle full UTF-32 range.
21774         Remove ["0A"] from comment, since it can look like a line terminator.
21775         Currently we don't permit this, but this is under discussion by the
21776         ARG, and it is easy enough to use a different example.
21777
21778         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
21779         handling UTF-32 encoding for wide wide character.
21780         Implement new brackets coding ["hhhhhhhh"]
21781         Add UTF-8 encodings for full UTF-32 range
21782
21783         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
21784
21785         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
21786         bit range Add full UTF-32 support.
21787         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
21788         notify that constraint error will be raised at run-time
21789         because a null value is assigned to a null-excluding object.
21790         Remove some obsolete declarations and make Char_Code
21791         unsigned.
21792
21793         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
21794         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
21795         Rcheck subprograms.
21796
21797         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
21798         wrong null-exclusion value by a warning message.
21799         (Enable_Range_Check): Do range check if the prefix is an
21800         explicit dereference whose designated object is an unconstrained array.
21801         Current algorithm for removing duplicate checks is over-eager in this
21802         case.
21803
21804         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
21805         null-exclusion value by a warning message
21806
21807         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
21808         completely. Add support for Uint2 field
21809
21810         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
21811         exp_prag.adb: Char_Literal_Value field is now a Uint.
21812
21813         * exp_util.adb (Insert_Actions): Replace
21814         N_Formal_Subprogram_Declaration by
21815         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
21816         Char_Literal_Value field is now a Uint.
21817
21818         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
21819         defined for subprogram renaming declarations. When set, the field
21820         indicates the defining entity of a corresponding formal subprogram
21821         when the renaming corresponds to a formal subprogram association in an
21822         instantiation.
21823         (Set_Corresponding_Formal_Spec): New procedure to return
21824         Corresponding_Formal_Spec field.
21825         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
21826         (which is now a subtype).
21827         Char_Literal_Value field is now a Uint
21828
21829         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
21830         pointer to the base of the dispatch table.
21831         Minor changes to comments.
21832         (Controlling_Type): New function for determining the tagged type
21833         associated with a tagged primitive subprogram.
21834         (Expand_Dispatching_Call): Add support for a controlling actual that is
21835         directly a value of type Ada.Tag rather than a tagged object.
21836
21837         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
21838         describing the new layout.
21839         (Dispatch_Table): The expander computes the actual array size, allocates
21840         the Dispatch_Table record accordingly, and generates code that displaces
21841         the base of the record after the Typeinfo_Ptr component. The access to
21842         these components is done by means of local functions.
21843         (Offset_To_Top): New function.
21844         (Typeinfo_Ptr): New function.
21845         (Get_TSD): Modified to access the new position of the TSD.
21846         (Set_TSD): Modified to save the TSD in its new position.
21847
21848         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
21849         case of formal abstract subprograms. Add check and message for -gnat05.
21850         Update comments.
21851
21852         * sem_ch12.adb: Add with and use for Sem_Disp.
21853         (Analyze_Associations): Minor change from "=" to "in" for use of
21854         N_Formal_Subtype_Declaration (which is now a subtype).
21855         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
21856         N_Formal_Subtype_Declaration (which is now a subtype).
21857         (Analyze_Formal_Subprogram): Add handling for
21858         N_Formal_Abstract_Subprogram, marking the formal as abstract and
21859         dispatching, setting the controlling status of the formal parameters
21860         and result, and issuing an error if there is no controlling type for
21861         the formal subprogram.
21862         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
21863         which is an unclean use of that field, we set the new field
21864         Corresponding_Formal_Spec to make the formal subprogram available to
21865         processing in Analyze_Subprogram_Declaration.
21866         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
21867         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
21868         Constrained, so that it is is does not statically match its anonymous
21869         base type.
21870
21871         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
21872         abstract formal subprograms in error check for functions returning
21873         abstract types. Set scope of new designator for
21874         a parameterless subprogram, so that it is available when checking the
21875         body for nested subprograms, before full analysis of said body.
21876         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
21877         subprogram only if inner one comes from source.
21878         (Analyze_Function_Call): If the call is given in object notation, the
21879         analysis of the name rewrites the node and analyzes it with the proper
21880         argument list. After analyzing the name, if the call has been rewritten
21881         and the result type is set, no further analysis is needed.
21882         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
21883         mark in function specification, in a context where the formals are
21884         visible and hide outer homographs.
21885
21886         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
21887         as the tagged type for the cases of abstract formal subprograms and
21888         renamings of those.  Clean up spec comments.
21889         (Check_Dispatching_Context): Add error message to indicate "abstract
21890         procedure", covering the case of a call to a formal abstract procedure
21891         that has statically tagged operands.
21892         (Check_Dispatching_Call): Check for the case of an actual given by
21893         a tag-indeterminate function call whose type is an ancestor of the
21894         containing call's associated tagged type. This situation can occur
21895         for inherited primitives with function defaults. In this case we
21896         use the tagged type's tag directly as the controlling argument for
21897         the calls.
21898         (Expand_Call): Name change on call to Expand_Dispatch_Call.
21899
21900         * sprint.adb (Sprint_Node_Actual): Split
21901         N_Formal_Subprogram_Declaration into two alternatives for the new
21902         cases N_Formal_Abstract_Subprogram_Declaration and
21903         N_Formal_Concrete_Subprogram_Declaration.
21904         Char_Literal_Value field is now a Uint.
21905
21906         * trans.c: Get rid of junk Uint2 reference.
21907         Char_Literal_Value field is now a Uint.
21908         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
21909         (gigi): Correct third arg to gimplify_body.
21910
21911         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
21912         (TYPE_LANG_FLAG_0): Check for record or union.
21913
21914         * treepr.adb: Char_Literal_Value field is now a Uint
21915
21916         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
21917         UI_From_CC.
21918
21919         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
21920         Add full UTF-32 support
21921         Char_Code is now 32 bits
21922
21923         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
21924         wide character UTF_32 line terminators.
21925         Initialize Main_Source_File to avoid error when no main
21926         source is loaded.
21927
21928         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
21929         (Main_Source_File) when no main source has been loaded, to avoid
21930         potential crash.
21931
21932 2005-02-09  Robert Dewar  <dewar@adacore.com>
21933
21934         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
21935         Fix name of Set routine
21936
21937         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
21938         fixed packages.
21939
21940         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
21941         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
21942         fixed packages
21943
21944         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
21945         forms of Get_Line subprograms for AI-301.
21946
21947         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
21948         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
21949         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
21950         a-stwima.ads: Minor reformatting.
21951
21952 2005-02-09  Doug Rupp  <rupp@adacore.com>
21953             Thomas Quinot  <quinot@adacore.com>
21954
21955         * adaint.c, adaint.h
21956         [VMS] (to_ptr32): New function.
21957         (MAYBE_TO_PTR32): New macro.
21958         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
21959         for pointer size.
21960         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
21961         [VMS] (#define fork()): Remove since unneccessary.
21962         (__gnat_set_close_on_exec): New routine to support
21963         GNAT.OS_Lib.Set_Close_On_Exec.
21964
21965         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
21966         the parent side as close-on-exec so that they are not inherited by the
21967         child.
21968
21969         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
21970         set or clear the FD_CLOEXEC flag on a file descriptor.
21971
21972 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
21973             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21974
21975         PR ada/19386
21976         * decl.c:
21977         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
21978         on the field if Pragma Component_Alignment (Storage_Unit).
21979         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
21980         side-effects as if it were a constant; also make SAVE_EXPR to protect
21981         side-effects.
21982         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
21983         UNION_TYPE.
21984         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
21985         (components_to_record): Test it.
21986         Fix improper usage of REFERENCE_CLASS_P.
21987
21988         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
21989         RECORD_TYPE.
21990
21991         * utils2.c: Minor reformatting.
21992
21993         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
21994         handle other cases like RECORD_TYPE.
21995
21996         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
21997
21998 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
21999
22000         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
22001         component of an array of arrays in an assignment context, and the
22002         aggregate has component associations that require sliding on
22003         assignment, force reanalysis of the aggregate to generate a temporary
22004         before the assignment.
22005         (Must_Slide): Make global to the package, for use in Gen_Assign.
22006
22007 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
22008
22009         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
22010         unchecked union with no inferable discriminants, return a
22011         Raise_Program_Error node, rather than inserting it at the point the
22012         type is frozen.
22013         (Expand_Record_Equality, Component_Equality): Handle properly the case
22014         where some subcomponent is an unchecked union whose generated equality
22015         code raises program error.
22016
22017 2005-02-09  Doug Rupp  <rupp@adacore.com>
22018
22019         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
22020         [VMS] (#define exit hack): Remove.
22021
22022 2005-02-09  Pascal Obry  <obry@adacore.com>
22023             Arnaud Charlet  <charlet@adacore.com>
22024
22025         * init.c (__gnat_initialize): Add a new parameter eh which contains the
22026         address of the exception registration. The Win32 version of this
22027         routine calls __gnat_install_SEH_handler() to initialize the SEH
22028         (Structured Exception Handling) handler.
22029         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
22030         SEH (Structured Exception Handling) now.
22031         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
22032         (__gnat_initialize for ppc-vxworks): Adjust comments and the
22033         preprocessor condition protecting the call to the extra eh setup
22034         subprogram, which is only available for the ppc target.
22035         (__gnat_clear_exception_count): replaced reference to
22036         variable taskIdCurrent by call to taskIdSelf(), cleaner.
22037
22038         * seh_init.c: New file.
22039
22040         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
22041         (GNATBIND_OBJS): Idem.
22042
22043         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
22044         routine takes a new parameter (a pointer to the exception registration
22045         for the SEH (Structured Exception Handling) support.
22046
22047         * raise.h: (__gnat_install_SEH_handler): New prototype.
22048         Update copyright notice.
22049
22050         * s-tassta.adb (Task_Wrapper): Declare the exception registration
22051         record and initialize it by calling __gnat_install_SEH_handler.
22052
22053 2005-02-09  Vincent Celier  <celier@adacore.com>
22054
22055         * make.adb (Gnatmake): Do not fail when the main project has no object
22056         directory.
22057
22058 2005-02-09  Doug Rupp  <rupp@adacore.com>
22059
22060         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
22061         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
22062         [VMS]: Add translations for g-enblsp.adb.
22063
22064         * s-asthan-vms.adb: Removed.
22065         * s-asthan-vms-alpha.adb: Added.
22066
22067 2005-02-09  Pascal Obry  <obry@adacore.com>
22068
22069         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
22070         (LIBGNAT_OBJS): Add seh_init.o.
22071
22072 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
22073
22074         PR ada/16592
22075         * Makefile.in: Link all gnat tools with -static-libgcc, since
22076         -shared-libgcc is now used by default on some systems (e.g. linux with
22077         recent binutils).
22078         Remove references to Makefile.prolog/generic, no longer used.
22079
22080 2005-02-09  Vincent Celier  <celier@adacore.com>
22081
22082         * prj-makr.adb (Process_Directory): Put file name in canonical case
22083         before matching against the patterns.
22084         If gnatname has been invoked as <prefix>-gnatname
22085         then invoke the compiler as <prefix>-gcc, not just "gcc".
22086
22087 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
22088
22089         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
22090         with expansion disabled. The actual subtype is needed among other
22091         places when the selected component appears in the context of a loop
22092         bound, and denotes a packed array.
22093         (Operator_Check): Always use the first subtype in the
22094         error message, to avoid the appearance of internal base types.
22095         (Transform_Object_Operation): Copy each actual in full
22096         to the parameter associations of the constructed call, rather than
22097         using the shallow copy mechanism of New_Copy_List. This ensures that
22098         the chaining of named associations is done properly.
22099         (Complete_Object_Operation): Rewrite node, rather than
22100         replacing it, so that we can trace back to the original selected
22101         component.
22102
22103         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
22104         and calls that use object notation, if the called function is not
22105         declared  in a withed unit, place the elaboration constraint on the
22106         unit in the context that makes the function accessible.
22107         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
22108         imposes an elaboration constraint between two packages.
22109
22110 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
22111
22112         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
22113         views of a private type after handling its private dependents, to
22114         maintain proper stack discipline between entry and exit from the
22115         package.
22116
22117 2005-02-09  Cyrille Comar  <comar@adacore.com>
22118
22119         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
22120         Minor reformatting.
22121
22122 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
22123
22124         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
22125         fields for foreign threads.
22126
22127 2005-02-09  Doug Rupp  <rupp@adacore.com>
22128
22129         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
22130         recursion warnings when compiled with -gnatdm.
22131
22132 2005-02-09  Robert Dewar  <dewar@adacore.com>
22133
22134         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
22135         Slight fix to documentation of -gnaty with no parameters
22136
22137         * xr_tabls.ads: Add ??? comment for missing overall comment
22138
22139         * xsinfo.adb: Make default file name be sinfo.h, since this is what
22140         we now use by default.
22141
22142         * xsnames.adb: Adjust end of file test to look for five space followed
22143         by '#' instead of six spaces. The format of xsnames.adb was modified
22144         in the last update.
22145
22146         * a-numeri.ads: Add reference to AI-388 for greek letter pi
22147         identifier.
22148
22149         * clean.adb: Minor reformatting.
22150
22151         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
22152         gnatname.adb: Minor reformatting
22153         Add 2005 to copyright output when utility is run
22154
22155         * csets.adb: Eliminate obsolete comment
22156
22157         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
22158         Update comments.
22159
22160         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
22161
22162 2005-02-09  Sergey Rybin  <rybin@adacore.com>
22163
22164         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
22165         the difference between compact and incompact layout and add the record
22166         representation clause to the example illustrating different layouts.
22167         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
22168         component clauses").
22169
22170 2005-02-09  Florian Villoing  <villoing@adacore.com>
22171
22172         * gnat_ugn.texi: Fix typos.
22173         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
22174         @file.
22175         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
22176         in the generated documentation.
22177
22178 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
22179
22180         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
22181         longer supported.
22182         Update linker wrapper when linking with non GNU C++.
22183
22184 2005-02-09  Pascal Obry  <obry@adacore.com>
22185
22186         * gnat_ugn.texi:
22187         Document the procedure to debug the DllMain routine on Windows.
22188         Add note about -funwind-tables and mixed Ada and C/C++ programming in
22189         ZCX mode.
22190         Document new BIND qualifer /RETURN_CODES=VMS.
22191
22192 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
22193
22194         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
22195         Edited gnatmetric chapter
22196
22197 2005-02-09  Robert Dewar  <dewar@adacore.com>
22198
22199         * gnat_rm.texi:
22200         Changes to document new wide wide character support
22201         For AI-285
22202         Update documentation on Normalize_Scalars and Initialize_Scalars
22203
22204 2005-02-09  Pascal Obry  <obry@adacore.com>
22205
22206         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
22207
22208 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
22209
22210         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
22211         from the VxWorks kernel) that is needed for getting the active
22212         priority of the different tasks.
22213
22214         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
22215         Use a pragma Elaborate_Body in the spec file instead.
22216         Noticed by code reading.
22217
22218 2005-02-09  Thomas Quinot  <quinot@adacore.com>
22219
22220         * exp_util.ads: Minor correction in comment.
22221
22222 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
22223
22224         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
22225         since this procedure is now too complex to be worth inlining.
22226
22227 2005-02-09  Richard Henderson  <rth@redhat.com>
22228
22229         * utils.c (gnat_define_builtin): Remove.
22230         (gnat_install_builtins): Use build_common_builtin_nodes.
22231
22232 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
22233
22234         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
22235         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
22236         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
22237         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
22238         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
22239         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
22240         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
22241         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
22242         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
22243         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
22244         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
22245         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
22246         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
22247         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
22248         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
22249         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
22250         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
22251         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
22252         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
22253         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
22254         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
22255         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
22256         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
22257         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
22258         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
22259         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
22260         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
22261         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
22262         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
22263         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
22264         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
22265         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
22266         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
22267         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
22268         library.
22269
22270 2005-01-27  Laurent Guerby  <laurent@guerby.net>
22271
22272         * Makefile.in: Fix a-intnam.ads from previous commit,
22273         add 2005 to copyright.
22274         * a-intman-rtems.ads: Renamed to...
22275         * a-intnam-rtems.ads:
22276
22277 2005-01-27  Laurent Guerby  <laurent@guerby.net>
22278
22279         * Makefile.in: Rename GNAT RTEMS specific files.
22280         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
22281         5rosinte.ads, 5rparame.adb: Replaced by files below.
22282         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
22283         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
22284
22285 2005-01-27  Joel Sherrill  <joel.sherrill@oarcorp.com>
22286             Laurent Guerby  <laurent@guerby.net>
22287
22288         PR ada/19488
22289         * 5rosinte.ads: Add No_Key constant.
22290         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
22291         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
22292
22293 2005-01-26  Laurent Guerby  <laurent@guerby.net>
22294
22295         PR ada/19414
22296         * i-cobol.adb (Valid_Numeric): Handle zero length case.
22297
22298 2005-01-20  Richard Henderson  <rth@redhat.com>
22299
22300         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
22301         a-intnam-linux.ads and system-linux-alpha.ads.
22302         * a-intnam-linux-alpha.ads: Remove file.
22303         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
22304         * system-linux-alpha.ads: New file.
22305
22306 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
22307
22308         PR ada/13470
22309         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
22310         set to the new string.
22311
22312 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
22313
22314         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
22315         to True.
22316
22317 2005-01-18  Richard Henderson  <rth@redhat.com>
22318
22319         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
22320         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
22321         for alpha-linux.
22322         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
22323
22324 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
22325
22326         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
22327         (GCC_ZCX_Support): Likewise.
22328
22329 2005-01-11  Bastian Blank  <waldi@debian.org>
22330
22331         * system-linux-s390.ads: Define Preallocated_Stacks.
22332         * system-linux-s390x.ads: Likewise.
22333
22334 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
22335
22336         * gnat_ugn.texi: Fix texi errors with null variables.
22337
22338 2005-01-03  Thomas Quinot  <quinot@adacore.com>
22339
22340         * gen-soccon.c: New utility program to generate g-soccon.ads
22341         automatically.
22342
22343         * socket.c, gsocket.h: Split inclusion of system header files into a
22344         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
22345
22346         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
22347         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
22348         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
22349         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
22350         should not be edited by hand anymore, but should be regenerated using
22351         gen-soccon.
22352
22353 2005-01-03  Robert Dewar  <dewar@adacore.com>
22354             Ed Schonberg  <schonberg@adacore.com>
22355             Vincent Celier  <celier@adacore.com>
22356
22357         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
22358         on/off, since this is an obsolescent feature, for which we now generate
22359         a warning.
22360
22361         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
22362         warning mode is set and obsolescent usage of this attribute occurs.
22363         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
22364         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
22365         predates, and partly motivates, the adoption of the AI.
22366         Implement new Ada 2005 attribute Mod
22367
22368         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
22369         attribute Mod.
22370
22371         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
22372
22373         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
22374         pragma restrictions.
22375         New entry for Ada 2005 attribute Mod.
22376
22377         * par-prag.adb:
22378         Add recognition of new pragma Restrictions No_Dependence
22379         Recognize restriction No_Obsolescent_Features at parse time
22380
22381         * bcheck.adb: Add circuitry for checking for consistency of
22382         No_Dependence restrictions.
22383
22384         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
22385         restrictions.
22386
22387         * restrict.ads, restrict.adb: Add subprograms to deal with
22388         No_Dependence restrictions.
22389
22390         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
22391         restrictions.
22392
22393         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
22394         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
22395
22396         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
22397         dummy parameter to scng instantiation.
22398         Needed for new restriction No_Obsolescent_Features
22399
22400         * scn.adb: (Obsolescent_Check): New procedure
22401         Needed for new restriction No_Obsolescent_Features
22402
22403         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
22404         specified by AI-285, needed for implementation of AI-388 (adding greek
22405         pi to Ada.Numerics).
22406         Add new generic formal to scng, needed for new restriction
22407         No_Obsolescent_Features.
22408
22409         * s-rident.ads: Add new restriction No_Obsolescent_Features.
22410
22411         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
22412         restrictions lines.
22413         (Scan_ALI): When finding an unexpected character on an R line, raise
22414         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
22415         Ignore_Errors is True, default restrictions are set and scanning of the
22416         ALI file continues with the next line. Also, when Bad_R_Line is raised
22417         and Ignore_Errors is True, skip to the end of le line.
22418
22419         * sem_ch10.adb: Check that explicit with's do not violate
22420         No_Dependence restrictions.
22421         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
22422         illegal context clauses containing child units of instance.
22423
22424         * sem_prag.adb: Processing and checking for new No_Dependence
22425         restrictions.
22426         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
22427         analyze and check the External argument.
22428
22429         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
22430
22431 2005-01-03  Robert Dewar  <dewar@adacore.com>
22432
22433         * atree.adb: Add a fifth component to entities
22434         This allows us to add 32 flags and four new fields
22435
22436         * atree.ads: Add a fifth component to entities
22437         This allows us to add 32 flags and four new fields
22438
22439         * einfo.ads, einfo.adb: Document new fields and new flags now available
22440         Add routines for printing new fields
22441
22442         * treepr.adb: Call routines to print out additional fields if present
22443
22444 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
22445
22446         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
22447         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
22448
22449         * Makefile.in: Add support to build shared Ada libraries on solaris x86
22450         Remove gpr2make, replaced by gprmake.
22451         Remove references to gnatmem and libaddr2line.
22452         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
22453         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
22454         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
22455         a-numaux-darwin.ads and a-numaux-darwin.adb
22456         Enable mlib-tgt-lynxos.adb on lynxos.
22457
22458         * Make-lang.in: Remove rules for gpr2make.
22459         When generating sdefault.adb, do not call Relocate_Path
22460         on S3 for function Target_Name, as it is not a path.
22461         Remove references to gnatmem and libaddr2line.
22462
22463         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
22464         files.
22465
22466 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
22467
22468         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
22469         address is incompatible with its base type alignment constraints when
22470         this can be decided statically.
22471
22472 2005-01-03  Olivier Hainque  <hainque@adacore.com>
22473
22474         * decl.c (compatible_signatures_p): New function. The intended purpose
22475         is to check if two function signatures for a call-site and a callee are
22476         compatible enough for the call to be valid. The underlying purpose is
22477         to check if a call to a mapped builtin is using the right interface.
22478         The current code actually does not check antyhing - this a placeholder
22479         for future refinements.
22480         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
22481         builtin calls for convention Intrinsic.
22482
22483         * gigi.h (builtin_decl_for): Declare (new function).
22484
22485         * utils.c (gnat_install_builtins): Install the target specific builtins.
22486         (builtin_decl_for): New function, provide a dummy body for now.
22487
22488 2005-01-03  Geert Bosch  <bosch@adacore.com>
22489
22490         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
22491         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
22492         (Pred): Implement in terms of Succ.
22493
22494         * trans.c (convert_with_check): Reimplement conversion of float to
22495         integer.
22496
22497 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
22498             Vincent Celier  <celier@adacore.com>
22499
22500         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
22501         bounds can be negative, and must be declared Int, not Nat.
22502
22503         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
22504         array is checked after using the index in the array.
22505
22506         * makegpr.adb (Add_Switches): Check if there is a package for the
22507         processor. If there is no package, do not look for switches.
22508
22509 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
22510
22511         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
22512         generation of predefined stream operations (specs and bodies) should
22513         proceed. Under various restrictions these subprograms must not be
22514         generated.
22515
22516 2005-01-03  Thomas Quinot  <quinot@adacore.com>
22517
22518         * exp_dist.adb:
22519         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
22520         amount of PCS-specific code in RACW stubs generation.
22521         (Copy_Specification): Set Etype on copied formal parameter entities, as
22522         this information is needed for PolyORB stubs generation.
22523         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
22524         variable Dynamic_Async.
22525         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
22526         (Build_RPC_Receiver_Specification): Make generic again, as recent
22527         changes have allowed RPC receivers to have the same profile for both
22528         variants of the PCS.
22529         Reorganise RPC receiver generation to reduce differences between the
22530         structure of GARLIC and PolyORB RPC receivers.
22531         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
22532         PCS-specific.
22533         Simplify elaboration code for RCI packages.
22534
22535         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
22536         generation to reduce differences between the structure of GARLIC and
22537         PolyORB RPC receivers.
22538
22539         * s-stratt.adb: Fix typo in comment.
22540
22541 2005-01-03  Thomas Quinot  <quinot@adacore.com>
22542
22543         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
22544         copied from Make_Init_Call).
22545
22546         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
22547         reads and assignments on a temporary variable declared with appropriate
22548         discriminants.
22549
22550 2005-01-03  Robert Dewar  <dewar@adacore.com>
22551
22552         * i-c.adb (To_C): Raise CE if string is null and Append_Null
22553
22554 2005-01-03  Robert Dewar  <dewar@adacore.com>
22555
22556         * i-cstrin.adb (Update): Do not append a null in form called with a
22557         String. This avoids unintended behavior.
22558
22559 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
22560
22561         PR ada/17527
22562         * init.c: Fix warnings on Free BSD section.
22563
22564 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
22565
22566         PR ada/16949
22567         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
22568         xsinfo.adb).
22569
22570 2005-01-03  Vincent Celier  <celier@adacore.com>
22571
22572         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
22573         libraries when Unique_Compile is True (-u switch).
22574         (Gnatmake): ditto.
22575
22576 2005-01-03  Robert Dewar  <dewar@adacore.com>
22577
22578         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
22579         upper case letter or underscore after W, as allowed by spec.
22580
22581 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
22582
22583         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
22584         darwin port by using proper type definitions from header files.
22585         Use SIGTERM instead of SIGABRT for SIGADAABORT.
22586
22587 2005-01-03  Robert Dewar  <dewar@adacore.com>
22588
22589         * par.adb: Enhance error message handling for configuration file
22590         pragmas.
22591
22592 2005-01-03  Robert Dewar  <dewar@adacore.com>
22593
22594         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
22595         removed during the previous update (test properly for case of dividing
22596         largest negative number by -1, which generates overflow).
22597
22598 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
22599             Sergey Rybin  <rybin@adacore.com>
22600
22601         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
22602         to use as the defining identifier for a formal package.
22603         (Remove_Parent): If the instance takes place within (an instance of)
22604         a sibling, preserve private declarations of common parent.
22605
22606 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
22607
22608         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
22609         to determine whether one of the operands is a fixed-point type for
22610         which a user-defined multiplication or division operation might be
22611         defined.
22612
22613         * sem_res.adb (Valid_Conversion): The legality rules for conversions
22614         of access types are symmetric in Ada 2005: either designated type can
22615         be unconstrained.
22616
22617 2005-01-03  Vincent Celier  <celier@adacore.com>
22618
22619         * s-fileio.adb (Temp_File_Record): Change length of string component
22620         Name from L_tmpnam + 1 to max_path_len + 1.
22621
22622 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
22623
22624         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
22625         Self_Id.Deferral_Level = 0.
22626         (Do_Pending_Action): Move this function to the spec.
22627
22628         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
22629         Do_Pending_Action explicitely when needed, in case we're using
22630         No_Abort restrictions.
22631
22632         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
22633         deferral level since it will not get changed by the generated code.
22634         Keeping a default value of 1 would prevent some operations (e.g.
22635         select or delay) to proceed successfully.
22636
22637 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
22638             Robert Dewar  <dewar@adacore.com>
22639             Cyrille Comar  <comar@adacore.com>
22640
22641         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
22642         porting guide chapter (vms version).
22643         Revised doc title (removed "for native platforms") and subtitle.
22644         Add discussion on warning flag for obsolescent features. First we
22645         note that it applies to obsolete GNAT features, which was previously
22646         omitted. Second we contrast the behavior with that of the new
22647         Ada 2005 AI-368 restriction No_Obsolescent_Features.
22648         Preliminary rewriting of GNAT & libraries chapter in order to take
22649         into account default project locations & new project manager
22650         capabilities.
22651
22652 2005-01-03  Robert Dewar  <dewar@adacore.com>
22653
22654         * cstand.adb (Create_Operators): Clean up format and documentation of
22655         unary and binary operator result tables. No change in code, just
22656         reformatting and addition of comments.
22657
22658         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
22659         sem_ch2.adb: Minor reformatting
22660
22661         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
22662         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
22663         comments for Tree_Read and Tree_Write.
22664
22665 2005-01-03  Pascal Obry  <obry@adacore.com>
22666
22667         * exp_attr.ads: Minor reformatting.
22668
22669 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
22670
22671         * comperr.adb (Compiler_Abort): Add specialized message for GAP
22672         versions.
22673
22674 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
22675
22676         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
22677         whether the ancestor type is private, as may be the case with nested
22678         instantiations.
22679
22680 2004-12-30  Sohail Somani  <sohail@sohailsomani.com>
22681
22682         PR ada/19128
22683         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
22684
22685 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
22686
22687         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
22688         * utils2.c (build_unary_op): Likewise.
22689
22690 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22691
22692         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
22693
22694 2004-12-19  Richard Henderson  <rth@redhat.com>
22695
22696         * trans.c (gigi): Update gimplify_body call.
22697
22698 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
22699
22700         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
22701
22702 2004-12-07  Ed Falis  <falis@adacore.com>
22703
22704         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
22705         current task being suspended.
22706
22707         * init.c (__gnat_clear_exception): added to reset VxWorks exception
22708         count.
22709         (__gnat_map_signal): removed test for current task being suspended.
22710
22711 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
22712
22713         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
22714         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
22715         targets (such as AAMP).
22716
22717 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
22718
22719         * atree.adb (Visit_Itype): Create a new name for the generated itype,
22720         because the back-end may otherwise treat it as a redefinition of the
22721         old symbol.
22722
22723 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
22724
22725         * back_end.adb (Scan_Back_End_Switches): Accept --param.
22726
22727         * lang-specs.h: Accept --param.
22728
22729 2004-12-07  Vincent Celier  <celier@adacore.com>
22730
22731         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
22732         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
22733         Current_Body_Suffix => Ada_Body_Suffix).
22734         Take into account Externally_Built attribute.
22735
22736         * clean.adb (In_Extension_Chain): Always return False when one of the
22737         parameter is No_Project.
22738         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
22739         Ada_Language_Index).
22740         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
22741         Process_Languages for procedure Parse).
22742
22743         * gnatcmd.adb (Carg_Switches): New table.
22744         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
22745         Adapt to name changes in package Prj (Current_Spec_Suffix =>
22746         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
22747
22748         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
22749         Header_Num and function Hash are now declared in package Prj,
22750         not Prj.Com.
22751
22752         * prj.adb (Suffix_Of): New function.
22753         (Set (Suffix)): New procedure.
22754         (Hash): One function moved from Prj.Com
22755         (Is_Present, Language_Processing_Data_Of): New functions
22756         (Set): Two new procedures
22757         (Add_Language_Name, Display_Language_Name): New procedures
22758
22759         * prj.ads: (Suffix_Of): New function
22760         (Set (Suffix)): New procedure
22761         Add several types and tables for multi-language support.
22762         (Header_Num): Type moved from Prj.Com
22763         (Hash): Two functions moved from Prj.Com
22764         (Is_Present, Language_Processing_Data_Of): New functions
22765         (Set): Two new procedures
22766         (Add_Language_Name, Display_Language_Name): New procedures
22767         (Naming): Component name changes:
22768         Current_Spec_Suffix => Ada_Spec_Suffix,
22769         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
22770         Impl_Suffixes, Supp_Suffixes.
22771         (Project_Data): New components: Externally_Built, Supp_Languages,
22772         First_Language_Processing, Supp_Language_Processing, Default_Linker,
22773         Default_Linker_Path.
22774
22775         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
22776         new package Language_Processing with its attributes (Compiler_Driver,
22777         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
22778         Binder_Driver, Default_Linker).
22779
22780         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
22781         (Header_Num): Type moved to package Prj
22782
22783         * prj-env.adb: Adapt to name changes in package Prj
22784         (Current_Spec_Suffix => Ada_Spec_Suffix,
22785         Current_Body_Suffix => Ada_Body_Suffix).
22786
22787         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
22788         default to the project path, except the "-" is one of the directories
22789         in env var ADA_PROJECT_PATH.
22790         (Current_Project_Path): Global variable, replacing Project_Path
22791         that was in the body of Prj.Part.
22792         (Project_Path): New function
22793         (Set_Project_Path): New procedure
22794         Initialize Current_Project_Path during elaboration of the package
22795         Remove dependency on Prj.Com, no longer needed
22796
22797         * prj-ext.ads (Project_Path): New function
22798         (Set_Project_Path): New procedure
22799
22800         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
22801         suffix is defined for language <lang>.
22802         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
22803         accessing directly the components of Naming.
22804         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
22805         Reorganise of this package.
22806         Break procedure Check in several procedures.
22807
22808         * prj-nmsc.ads: Replace all procedures (Ada_Check,
22809         Other_Languages_Check and Language_Independent_Check) with a single
22810         procedure Check.
22811
22812         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
22813         Process_Languages, no longer needed.
22814
22815         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
22816         Current_Project_Path.
22817         Remove elaboration code, moved to the body of Prj.Ext
22818         Use new function Prj.Ext.Project_Path instead of old variable
22819         Project_Path.
22820         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
22821         When comparing with project paths on the stack, first put the resolved
22822         path in canonical case.
22823         (Parse_Single_Project): Set the path name of the project file in the
22824         tree to the normalized path.
22825
22826         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
22827         parameter Process_Languages, no longer needed.
22828         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
22829         Other_Languages_Check.
22830
22831         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
22832         to store the resolved canonical path of the project file.
22833         Remove dependency to Prj.Com, no longer needed
22834
22835         * prj-util.adb: Adapt to name changes in package Prj
22836         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
22837         Ada_Body_Suffix).
22838
22839         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
22840         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
22841         Externally_Built, Include_Option, Language_Processing.
22842
22843         * makegpr.adb: Numerous changes due to changes in packages
22844         Prj and Prj.Nmsc.
22845
22846         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
22847         default to the project path, except whe "-" is one of the directories
22848         in env var ADA_PROJECT_PATH.
22849         (Gnatls): In verbose mode, add the new section "Project Search Path:"
22850
22851 2004-12-07  Robert Dewar  <dewar@adacore.com>
22852
22853         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
22854
22855         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
22856         set -gnatR3m mode.
22857
22858         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
22859         flag. No longer needed now that we handle this in gnat1drv.adb.
22860
22861         * repinfo.ads: Minor reformatting
22862
22863 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22864             Olivier Hainque  <hainque@adacore.com>
22865             Eric Botcazou  <ebotcazou@adacore.com>
22866
22867         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
22868         TYPE_SIZE_UNIT of result type if SIZE is not specified.
22869         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
22870         of a bitfield, which we know is useless and causes trouble because of
22871         alignment implications.
22872
22873         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
22874         BSS sections.
22875         (process_attributes): Clear DECL_COMMON again when a section attribute
22876         is present.
22877         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
22878         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
22879         (create_field_decl): Special case ADDRESSABLE negative to mean
22880         "no bitfield creation", to be used by make_aligning_type. Don't
22881         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
22882         fields claimed addressable still have to be bitfields. Use
22883         value_factor_p instead of a raw binop construction to check for the
22884         position's alignment.
22885
22886 2004-12-07  Geert Bosch  <bosch@adacore.com>
22887
22888         * eval_fat.adb: Revert previous change.
22889
22890 2004-12-07  Thomas Quinot  <quinot@adacore.com>
22891             Ed Schonberg  <schonberg@adacore.com>
22892
22893         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
22894         with an implicit dereference as its prefix, use
22895         Insert_Explicit_Dereference instead of merely rewriting the prefix into
22896         an explicit dereference. This ensures that a reference to the original
22897         prefix is generated, if appropriate.
22898
22899         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
22900         dereference is rewritten to an explicit one, generate a reference to
22901         the entity denoted by its prefix using the original prefix node, so
22902         the dereference can be properly recorded as a read of the denoted
22903         access value, if appropriate.
22904
22905         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
22906         emitting 'assigned but never read' warning on a variable on the basis
22907         that it has an access type.
22908         (Check_References): Emit unreferenced warning when the scope is a
22909         subprogram body.
22910
22911 2004-12-07  Robert Dewar  <dewar@adacore.com>
22912             Ed Schonberg  <schonberg@adacore.com>
22913
22914         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
22915         intrinsic
22916
22917         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
22918         leaving call unchanged.
22919         This deals with the case where the pragma Import specified
22920         an external name, to be handled by the back end.
22921
22922         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
22923         subprogram which is Imported with convention Intrinsic if an
22924         External_Name argument is specified.
22925         (Process_Import_Or_Interface): Properly diagnose link name argument.
22926         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
22927         with Sem_Ch6.Cannot_Inline.
22928         (Process_Inline): Provide separate warning for inapplicable inline
22929         pragma.
22930         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
22931         treatment is uniform on different targets.
22932
22933 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
22934
22935         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
22936         construct is rewritten, preserve end label to permit source navigation.
22937
22938 2004-12-07  Thomas Quinot  <quinot@adacore.com>
22939
22940         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
22941         Specific_Build_Stub_Target): New subprograms.
22942         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
22943         the PCS implementation used, using the above PCS-customized subprograms.
22944         Minor reformatting.
22945         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
22946         for generation of DSA code targeted to the PolyORB PCS.
22947         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
22948         implementation of the partition communication subsystem in ancillary
22949         subprograms.
22950         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
22951         PolyORB_Support.Build_Stub_Type): New subrograms containing the
22952         PCS-specific part of Add_Stub_Type.
22953         (Insert_Partition_Check): Use runtime library function to perform
22954         E.4(19) check.
22955
22956         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
22957         (RE_Same_Partition): New entity, from s-parint.
22958
22959         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
22960
22961 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
22962
22963         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
22964         Output the copyright message on a separate line from the version
22965         message.
22966
22967 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
22968
22969         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
22970         compile-time warning.
22971
22972 2004-12-07  Robert Dewar  <dewar@adacore.com>
22973
22974         * g-regpat.adb: (Match): Change a misuse of or to or else
22975
22976 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
22977
22978         * lib-xref.adb:
22979         (Generate_Reference): Handle properly a reference to an entry formal,
22980          when an accept statement has a pragma Unreferenced for it.
22981
22982         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
22983         and the Has_Pragma_Unreferenced flag for each formal before analyzing
22984         the body, to ensure that warnings are properly emitted for each accept
22985         statement of a given task entry.
22986
22987 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
22988
22989         * Makefile.in: Add support for foreign threads on VMS.
22990
22991 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22992
22993         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
22994         Remove.
22995         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
22996
22997         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
22998
22999         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
23000         exception.
23001         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
23002
23003 2004-12-07  Robert Dewar  <dewar@adacore.com>
23004
23005         * nlists.adb (Prepend_Debug): Remove parameters and nest within
23006         Prepend.
23007         (Remove_Next_Debug): Same fix
23008
23009         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
23010         maintain back pointers now, though we did not used to, and comments
23011         were out of date).
23012         (Prepend): Remove pragma Inline.
23013         (Remove_Next): Same cleanup
23014
23015 2004-12-07  Thomas Quinot  <quinot@adacore.com>
23016
23017         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
23018         used to record an implicit dereference as a read operation on its
23019         prefix when operating under -gnatc. Necessary to avoid spurious
23020         'variable assigned but never read' warnings in that mode.
23021         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
23022         is a non-overloaded implicit dereference, call the above subprogram to
23023         ensure proper recording of references.
23024
23025 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
23026
23027         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
23028         to be resolved later as part of Analyze_Iteration_Scheme's call to
23029         Make_Index.
23030
23031 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
23032
23033         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
23034         prefix is not a scalar type, place error message on prefix, not on
23035         type entity.
23036
23037 2004-12-07  Bernard Banner  <banner@adacore.com>
23038
23039         * vxaddr2line.adb: Add support for x86 vxworks
23040
23041 2004-12-07  Thomas Quinot  <quinot@adacore.com>
23042
23043         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
23044         documentation of the behaviour of these functions when passed an IP
23045         address that has no record in the system hosts database and no reverse
23046         record in the DNS.
23047
23048         * cstand.adb, a-tags.ads: Fix typos in comment.
23049
23050 2004-12-07  Robert Dewar  <dewar@adacore.com>
23051
23052         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
23053         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
23054         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
23055         s-poosiz.ads: Minor reformatting
23056
23057         * make.adb: Minor reformatting
23058         Add some ??? comments asking for more comments
23059
23060         * s-poosiz.adb: Minor reformatting
23061         Add comments on alignment requirement
23062
23063         * sinfo.ads: Remove obsolete comment and fix typo.
23064
23065 2004-12-07  Vincent Celier  <celier@adacore.com>
23066             Sergey Rybin  <rybin@adacore.com>
23067
23068         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
23069         Files" with the new tool and package names.
23070         Reformatting to suppress most of the warnings for line too long
23071         Document the new section "Project Search Path:" in the output of
23072         gnatls -v.
23073         Add gnatmetric section
23074
23075 2004-12-07  Vincent Celier  <celier@adacore.com>
23076
23077         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
23078         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
23079         and -eit to -ept. Added qualifier
23080         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
23081
23082 2004-11-27  Andreas Schwab  <schwab@suse.de>
23083
23084         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
23085
23086 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
23087
23088         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
23089         internal implementation unit GNAT.Sockets.Thin,
23090         as their usage for sockets is non-portable (using the read and write
23091         functions from the system runtime library is fine on UNIX but won't
23092         work under Windows).
23093
23094         * mingw32.h: Update copyright notice.
23095
23096 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
23097
23098         * ada-tree.h: Minor reformatting of previous change to avoid lines
23099         longer than 79 characters.
23100
23101 2004-11-25  Olivier Hainque  <hainque@adacore.com>
23102
23103         * tb-gcc.c: GCC infrastructure based implementation of
23104         __gnat_backtrace.
23105
23106 2004-11-24  Steven Bosscher  <stevenb@suse.de>
23107
23108         * misc.c (gnat_post_options): Don't clear
23109         flag_inline_functions.
23110
23111 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
23112
23113         PR ada/17986
23114         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
23115         tree.
23116
23117 2004-11-21  Andreas Jaeger  <aj@suse.de>
23118
23119         * stylesw.adb: Change Style_Check_Subprogram_Order to
23120         Style_Check_Order_Subprograms.
23121
23122 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
23123
23124         * adaint.h, adaint.c
23125         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
23126         to avoid warnings.
23127         Add also a cast to kill another warning.
23128         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
23129         parameter with the priority class of the parent process instead of
23130         always using the NORMAL_PRIORITY_CLASS.
23131         (__gnat_dup): New function.
23132         (__gnat_dup2): New function.
23133         (__gnat_is_symbolic_link): Enable the effective body of this
23134         function when __APPLE__ is defined.
23135
23136         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
23137         Update comments.
23138
23139 2004-11-18  Olivier Hainque  <hainque@adacore.com>
23140
23141         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
23142         address of which may be used to represent "others" and "all others"
23143         choices in exception tables, instead of the current harcoded
23144         (void *)0 and (void *)1.
23145         (Setup_Exception): Do nothing in the GNAT SJLJ case.
23146
23147         * gigi.h (others_decl, all_others_decl): New decls representing the
23148         new Others_Value and All_Others_Value objects.
23149         (struct attrib): Rename "arg" component as "args", since GCC expects a
23150         list of arguments in there.
23151
23152         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
23153         corresponding objects exported by a-exexpr, instead of hardcoded dummy
23154         addresses.
23155
23156         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
23157         others_decl and all_others_decl instead of hardcoded dummy addresses
23158         to represent "others" and "all others" choices, which is cleaner and
23159         more flexible with respect to the possible eh pointer encoding policies.
23160
23161         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
23162         (process_attributes): Account for the naming change of the "args"
23163         attribute list entry component.
23164
23165         * decl.c (build_attr_list): Rename into prepend_attributes to allow
23166         cumulating attributes for different entities into a single list.
23167         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
23168         attributes for the current entity and propagate first subtype
23169         attributes to other subtypes.
23170         <E_Procedure>: Attribute arguments are attr->args and not
23171         attr->arg any more.
23172         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
23173         argument provided, as this is what GCC expects. Use NULL_TREE instead
23174         of 0 for trees.
23175
23176 2004-11-18  Robert Dewar  <dewar@adacore.com>
23177
23178         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
23179         Minor reformatting througout (including new function specs)
23180         Add ??? comments asking for clarification.
23181
23182 2004-11-18  Thomas Quinot  <quinot@adacore.com>
23183
23184         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
23185         incomplete duplicate implementation of this subprogram from butil.
23186
23187 2004-11-18  Thomas Quinot  <quinot@adacore.com>
23188
23189         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
23190         procedures factors the common processing for building an RPC receiver
23191         for an RCI package or an RACW type.
23192         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
23193         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
23194         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
23195         in use.
23196         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
23197         Add_RACW_Features.
23198         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
23199         Add_RAST_Features.
23200         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
23201         distribution subprogram identifiers that are either subprogram numbers
23202         or strings.
23203         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
23204         string distribution identifiers assigned to a given subprogram.
23205         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
23206         (Add_RAS_Dereference_TSS): Add comments.
23207         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
23208         is not referenced yet because it will be used by the PolyORB DSA
23209         implementation.
23210         (Insert_Partition_Check): Remove fossile code.
23211         (First_RCI_Subprogram_Id): Document this constant.
23212         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
23213         RAS_Access TSS.
23214         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
23215         replaced with calls to Get_Library_Unit_Name_String. Previously there
23216         were several instances of the same code in different locations in the
23217         compiler; this checkin completes the replacement of all of these
23218         instances with calls to a common subprogram.
23219         Minor reformatting.
23220
23221         * sem_dist.adb: Remove comment noting that RPC receiver generation
23222         should be disabled for RACWs that implement RASs.
23223         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
23224
23225         * sem_util.ads, sem_util.adb (Has_Stream): New function
23226         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
23227         qualified name of a library unit into the name buffer.
23228         (Note_Possible_Modification): Generate a reference only
23229         if the context comes from source.
23230
23231         * snames.ads (PCS_Names): New subtype corresponding to names of
23232         supported implementations of the Partition Communication Subsystem
23233         (PCS) (i.e. the runtime library support modules for the distributed
23234         systems annex).
23235
23236 2004-11-18  Robert Dewar  <dewar@adacore.com>
23237             Ed Schonberg  <schonberg@adacore.com>
23238
23239         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
23240         (Has_Rep_Pragma): New function
23241         (Has_Attribute_Definition_Clause): New function
23242         (Record_Rep_Pragma): Moved here from sem_ch13.adb
23243         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
23244
23245         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
23246
23247         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
23248         (Expand_Pragma_Psect_Object): New procedure
23249         These procedures contain the revised and cleaned up processing for
23250         these two pragmas. This processing was formerly in Sem_Prag, but
23251         is more appropriately moved here. The cleanup involves making sure
23252         that the pragmas are properly attached to the tree, and that no
23253         nodes are improperly shared.
23254
23255         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
23256         pragmas to Exp_Prag, which is more appropriate.
23257         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
23258         check for duplicates Remove use of Is_Psected flag, no longer needed.
23259         Use new Make_String_Literal function with string.
23260
23261         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
23262         that are functions return universal values, that have to be converted
23263         to the context type.
23264         Use new Make_String_Literal function with string.
23265         (Get_Stream_Convert_Pragma): New function, replaces the use of
23266         Get_Rep_Pragma, which had to be kludged to work in this case.
23267
23268         * freeze.adb: Use new Has_Rep_Pragma function
23269
23270         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
23271         function with string.
23272         Use new Has_Rep_Pragma function.
23273
23274         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
23275         string argument.
23276
23277 2004-11-18  Robert Dewar  <dewar@adacore.com>
23278
23279         * errout.ads, errout.adb: (First_Sloc): New function
23280
23281         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
23282         check (-gnatyx) instead of being included as a redundant construct
23283         warning.
23284
23285         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
23286         Style_Check_Order_Subprograms.
23287
23288         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
23289         stylesw.adb: Add Style_Check_Xtra_Parens
23290
23291         * usage.adb: Add line for -gnatyx (check extra parens)
23292
23293         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
23294
23295 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
23296             Robert Dewar  <dewar@adacore.com>
23297
23298         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
23299         discriminant of a constrained subtype, analyze the copy of the
23300         corresponding constraint, because in some cases it may be only
23301         partially analyzed.
23302         Removes long-lived ??? comments.
23303
23304         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
23305         handled controlled or secondary-stack expressions within the
23306         iteration_scheme of a loop.
23307
23308         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
23309         bounds that may contain functions calls, to prevent memory leaks when
23310         the bound contains a call to a function that uses the secondary stack.
23311         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
23312         generate temporaries for loop bounds that might contain function calls
23313         that require secondary stack and/or finalization actions.
23314
23315         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
23316         selected component and the selector is overloadable (not just a
23317         function) treat as function call, Analyze_Call will disambiguate if
23318         necessary.
23319         (Analyze_Selected_Component): Do not generate an actual subtype for the
23320         selected component if expansion is disabled. The actual subtype is only
23321         needed for constraint checks.
23322         (Analyze_Allocator): If restriction No_Streams is set, then do
23323         not permit objects to be declared of a stream type, or of a
23324         composite type containing a stream.
23325
23326         * restrict.ads: Remove the a-stream entry from Unit_Array, since
23327         No_Streams no longer prohibits with'ing this package.
23328
23329         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
23330         discriminants, but the parent base has unknown discriminants, there is
23331         no discriminant constraint to inherit. Such a discrepancy can arise
23332         when the actual for a formal type with unknown discriminants is a
23333         similar private type whose full view has discriminants.
23334         (Analyze_Object_Declaration): If restriction No_Streams is set, then
23335         do not permit objects to be declared of a stream type, or of a
23336         composite type containing a stream.
23337
23338 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
23339
23340         * exp_dbug.ads: Update documentation to reflect simpler encoding for
23341         protected operations.
23342
23343         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
23344         generated name, it complicates decoding in gdb and hinders debugging
23345         of protected operations.
23346         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
23347         flag for the protected entry barrier function.
23348         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
23349         flag for the protected entry function.
23350
23351 2004-11-18  Nicolas Setton  <setton@adacore.com>
23352
23353         * expect.c: Define __unix__ when __APPLE__ is defined.
23354
23355         * Makefile.in: Inform the value of the variable GMEM_LIB in the
23356         Darwin-specific section.
23357
23358         * lang-specs.h: Change the placement of the %1 marker.
23359         Works around the fact that gcc adds -fPIC by default under Darwin.
23360
23361 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
23362
23363         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
23364         type of the object with the packed array type, set the Analyzed flag
23365         on the object if it is an entity or simple indexed component, to avoid
23366         spurious type errors.
23367
23368 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
23369
23370         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
23371         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
23372         separate line from the version message.
23373
23374 2004-11-18  Ed Falis  <falis@adacore.com>
23375
23376         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
23377         vthreads.
23378         (init_float): Eliminate initialization of floating point status for
23379         AE653. The instructions have no effect for vThreads.
23380
23381 2004-11-18  Vincent Celier  <celier@adacore.com>
23382
23383         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
23384         gnatbind is invoked with -shared.
23385
23386 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
23387
23388         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
23389         for Detect_Blocking which is redundant with the check done within the
23390         procedure Protected_Single_Entry_Call.
23391         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
23392         Detect_Blocking which is redundant with the check done within the
23393         procedure Protected_Single_Entry_Call.
23394
23395 2004-11-18  Vincent Celier  <celier@adacore.com>
23396
23397         * makegpr.adb (Compile): Put the compiling switches (in package
23398         Compiler and on the command line) immediately after "-c", instead of
23399         at the end of the command line invocation of the compiler, when
23400         compiling a non-Ada file.
23401         (Build_Global_Archive): When there is no need to rebuild the archive,
23402         set Global_Archive_Exists, so that the archive is passed to the linker
23403         if one is needed.
23404
23405 2004-11-18  Robert Dewar  <dewar@adacore.com>
23406             Sergey Rybin  <rybin@adacore.com>
23407
23408         * gnat_ugn.texi:
23409         Remove extra paren check from list of checks for redundant constructs
23410         Add documentation of new -gnatyx style check (check extra parens)
23411         Remove paragraph about gnatelim debug options.
23412
23413         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
23414         objects rather than forbidding dependencies on the package Ada.Streams.
23415
23416         * sinfo.ads: Add ??? note that we should document pragmas passed to
23417         back end.
23418
23419         * g-expect.ads: Fix a few typos in the comments.
23420
23421 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
23422
23423         * misc.c (gnat_handle_option): Use %< and %> for quoting in
23424         warning message.
23425
23426 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
23427
23428         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
23429
23430 2004-11-07  Andreas Schwab  <schwab@suse.de>
23431
23432         * Makefile.in (install-gnatlib): Remove spurious hyphen.
23433
23434 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
23435
23436         PR ada/18228
23437         * Makefile.in (darwin): Set soext to .dylib.
23438
23439 2004-10-26  Vincent Celier  <celier@gnat.com>
23440             Thomas Quinot   <quinot@act-europe.fr>
23441
23442         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
23443         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
23444         there is no use of GNAT.Sockets.Constants.
23445         Remove remaining pragma Import for C_Write
23446         Remove C_Read and C_Write from internal implementation unit
23447         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
23448         the read and write functions from the system runtime library is fine
23449         on UNIX but won't work under Windows).
23450
23451         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
23452         (Check_Selector): Use C_Recv instead of C_Read.
23453         Selectors are the GNAT.Sockets abstraction to perform a select()
23454         call on a set of descriptors. To allow abortion of an ongoing
23455         select operation, some data is written to a dedicated socket that
23456         is always monitored.
23457         Under Windows, the write and read library functions cannot operate
23458         on sockets, so we need to use send and recv instead, which is portable
23459         across all supported platforms.
23460
23461         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
23462         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
23463         (using the read and write functions from the system runtime library is
23464         fine on UNIX but won't work under Windows).
23465
23466 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
23467
23468         * mlib-tgt-darwin.adb: New file.
23469
23470         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
23471         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
23472         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
23473         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
23474         subprogram body.
23475
23476         * Makefile.in: Add support for building shared libraries under Darwin.
23477         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
23478         the low level EH init subprogram to be called from __gnat_initialize.
23479
23480         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
23481         indicates which options to pass to the archive indexer.
23482
23483         * mlib-utl.adb: Add support for calling ranlib with additional
23484         options. This is needed for instance under Mac OS X.
23485         (Ranlib_Options): New global variable, used to store the potential
23486         options to pass to ranlib.
23487         (Ar): Use Ranlib_Options when spawning ranlib.
23488         (Initialize): Set the value of ranlib option.
23489
23490 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
23491
23492         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
23493         instead of 8K, to reflect the real potential needs for stack-checking
23494         in the ZCX case.
23495
23496 2004-10-26  Pascal Obry  <obry@gnat.com>
23497
23498         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
23499
23500         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
23501         Windows only the initial thread stack size can be set so it is good to
23502         start we a low stack size.
23503         The OS will adjust the size as needed.
23504
23505 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
23506             Nicolas Setton  <setton@act-europe.fr>
23507
23508         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
23509         "__unix__" instead of "unix".
23510         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
23511         sections were just mistakenly ignored. The former is
23512         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
23513         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
23514         of hpux. This prevents an unwanted definition of the symbol
23515         convert_addresses in adaint.o.
23516
23517 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
23518
23519         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
23520         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
23521
23522 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
23523
23524         * a-filico.ads, a-filico.adb: fix incorrect header.
23525
23526 2004-10-26  Javier Miranda  <miranda@gnat.com>
23527
23528         * a-ststio.ads: Fix typo in identifier
23529
23530 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
23531
23532         * sem_ch4.adb: Minor reformatting.
23533
23534 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23535
23536         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
23537         enabled, check the result of unary and binary operations when the
23538         expression is the right-hand side of an assignment.
23539
23540 2004-10-26  Vincent Celier  <celier@gnat.com>
23541
23542         * clean.adb (Delete): Do not output warnings when in quiet output and
23543         not in verbose mode.
23544         (Force_Deletions): New Boolean flag, defaulted to False
23545         (Delete): Only delete a file if it is writable, and when
23546         Force_Deletions is True.
23547         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
23548         (Usage): Line for new switch -f
23549         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
23550         own.
23551
23552 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
23553
23554         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
23555         JM type only if its size matches that of the wrapper.  When a size is
23556         prescribed and the field is not aliased, remove the wrapper of a JM
23557         type only if the size is not greater than that of the packed array.
23558         (gnat_to_gnu_entity): Change the extension of packed array wrappers
23559         from LJM to JM.
23560
23561 2004-10-26  Geert Bosch  <bosch@gnat.com>
23562
23563         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
23564         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
23565         (Pred): Implement in terms of Succ.
23566
23567 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23568
23569         * exp_aggr.adb (Safe_Component): An aggregate component that is an
23570         unchecked conversion is safe for in-place use if the expression of the
23571         conversion is safe.
23572         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
23573         be expandable in place even if the aggregate does not come from source.
23574         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
23575         designated object of an allocator in place, rather than building it
23576         first on the stack. The previous scheme forces a full copy of the array,
23577         and may be altogether unsusable if the size of the array is too large
23578         for stack allocation.
23579
23580 2004-10-26  Robert Dewar  <dewar@gnat.com>
23581
23582         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
23583         compares if the component is atomic.
23584
23585         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
23586         array assignment if the component type is atomic.
23587
23588 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23589             Eric Botcazou  <ebotcazou@act-europe.fr>
23590
23591         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
23592         is aliased and is a by_reference type, do not pass by copy.
23593         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
23594         detect whether the call is in the right side of an assignment or
23595         the expression of an object declaration.  Recurse on component
23596         association within aggregates.
23597         Call it in the condition that determines whether the temporary is
23598         necessary for correct stack-checking.
23599
23600 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
23601
23602         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
23603         RACW_Type, used in the PolyORB version.
23604         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
23605         version and the GARLIC version.
23606
23607         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
23608         Rename RCI_Info to RCI_Locator for better consistency between the
23609         GARLIC and PolyORB versions of the distributed systems annex.
23610         (DSA_Implementation_Name): This enumeration lists the possible
23611         implementations of the Partition Communication Subsystem for the
23612         Distributed Systems Annex (DSA). The three available implementations
23613         are the dummy stub implementation (No_DSA), and two versions based on
23614         two different distribution runtime libraries: GARLIC and PolyORB. Both
23615         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
23616         technology.
23617         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
23618         that organization.
23619
23620         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
23621         between the GARLIC and PolyORB versions of the distributed systems
23622         annex.
23623         Remove RE_Unbounded_Reclaim_Pool since it is unused.
23624
23625 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
23626
23627         * gnat1drv.adb: Suppress calling the back end when
23628         Frontend_Layout_On_Target is true.
23629
23630 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
23631
23632         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
23633         Set_Read_Only): New subprograms.
23634         These new routines allow the user to set or unset the Owner execute
23635         and Owner write permission flags on a file.
23636
23637         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
23638         GNAT.OS_Lib.Set_Executable instead of rolling our own.
23639
23640 2004-10-26  Matthew Gingell  <gingell@gnat.com>
23641
23642         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
23643
23644 2004-10-26  Pascal Obry  <obry@gnat.com>
23645
23646         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
23647         memory before the faulting page we properly test the process read
23648         access for this address using appropriate Win32 routine.
23649         (HPUX sections): guard with "__hpux__" instead of "hpux".
23650
23651 2004-10-26  Robert Dewar  <dewar@gnat.com>
23652
23653         * lib-xref.adb (Generate_Reference): Don't complain about reference to
23654         entry parameter if pragma Unreferenced set, since we do not properly
23655         handle the case of multiple parameters.
23656
23657 2004-10-26  Vincent Celier  <celier@gnat.com>
23658
23659         * prj-env.adb: (Contains_ALI_Files): New Boolean function
23660         (Ada_Objects_Path.Add): For a library project, add to the object path
23661         the library directory only if there is no object directory or if the
23662         library directory contains ALI files.
23663         (Set_Ada_Paths.Add.Recursive_Add): Ditto
23664
23665 2004-10-26  Vincent Celier  <celier@gnat.com>
23666
23667         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
23668         extension of library projects.
23669
23670         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
23671         path defaults to ".:<prefix>/lib/gnat".
23672         (Parse): For an extending all project, allow direct import of a project
23673         that is virtually extended.
23674
23675         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
23676         the specified name is directly imported, return its ID. Otherwise, if
23677         an extension of this project is imported, return the ID of the
23678         extension.
23679
23680 2004-10-26  Robert Dewar  <dewar@gnat.com>
23681
23682         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
23683         (Sub3): New procedure, used by Scaled_Divide
23684         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
23685         correct more than one instance of failure to propagate carries
23686         correctly.
23687         (Double_Divide): Handle overflow case of largest negative number
23688         divided by minus one.
23689
23690         * s-arit64.ads (Double_Divide): Document that overflow can occur in
23691         the case of a quotient value out of range.
23692         Fix comments.
23693
23694 2004-10-26  Robert Dewar  <dewar@gnat.com>
23695
23696         * s-bitops.adb (Bit_Eq): Remove redundant check.
23697
23698         * s-bitops.ads: Minor comment updates
23699         Change some occurrences of Address to System.Address
23700
23701         * s-carsi8.ads: Fix minor cut-and-paste error in comments
23702
23703 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23704
23705         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
23706         accessibility check to prefix that is a protected operation.
23707
23708 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23709
23710         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
23711         empty, post message on stub.
23712
23713 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23714             Javier Miranda  <miranda@gnat.com>
23715
23716         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
23717         current instance appears within a unit that is directly in the context
23718         of the main unit.
23719         Used to determine whether the body of the instance should be analyzed
23720         immediately after its spec, to make its subprogram bodies available
23721         for front-end inlining.
23722         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
23723         constraint is not allowed on the component type (AARM 12.5.3(3))
23724
23725 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
23726
23727         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
23728         'Storage_Pool): enhance, document & limit detection of non-sharable
23729         internal pools.
23730
23731         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
23732
23733         * s-pooglo.ads: Add more documentation now that this pool is properly
23734         documented.
23735
23736 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23737
23738         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
23739         or protected type with discriminants, do not constrain the
23740         corresponding record type if the subtype declaration has no
23741         discriminant constraints. This can be the case in source code, or in
23742         the subtype declaration created to rename an actual type within an
23743         instantiation.
23744
23745 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23746
23747         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
23748         different kind of stub (possibly wrong name for file), do not check
23749         for conformance.
23750         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
23751         includes call to some function that returns an unconstrained type, do
23752         not inline.
23753
23754 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23755
23756         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
23757         appear in the code for the main unit. Dependencies among units in the
23758         context of the main unit are established when those other units are
23759         compiled. Otherwise spurious elaboration constraints can generate
23760         incorrect elaboration circularities.
23761
23762 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
23763             Ed Schonberg   <schonberg@gnat.com>
23764
23765         * sem_util.adb (Is_Aliased_View): Defend against the case where this
23766         subprogram is called with a parameter that is not an object name. This
23767         situation arises for some cases of illegal code, which is diagnosed
23768         later, and in this case it is wrong to call Is_Aliased, as that might
23769         cause a compiler crash.
23770         (Explain_Limited_Type): Refine previous fix to include
23771         inherited components of derived types, to provide complete information.
23772
23773         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
23774         is the prival for a protected object.
23775         It is necessary to mark this entity as a variable, in addition to
23776         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
23777         modified to avoid checking the Aliased flag on entities that are not
23778         objects. (Checking that flag for non-objects is erroneous and could
23779         lead to a compiler crash).
23780
23781 2004-10-26  Robert Dewar  <dewar@gnat.com>
23782
23783         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
23784         X_Frac = 0.5, then we know that the number X must be positive.
23785         (Succ): Remove the same redundant test, and also fix the primary test
23786         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
23787         Minor reformatting
23788         (Decompose): Add fuller comments to spec
23789
23790 2004-10-26  Pascal Obry  <obry@gnat.com>
23791
23792         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
23793         validity (process must have read access). Set to 0 in all other cases.
23794         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
23795         violation on Win32.
23796         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
23797         segmentation violation.
23798
23799 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
23800
23801         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
23802         whose type is a constructed subtype of an aliased object with an
23803         unconstrained nominal subtype, convert the actual to the constructed
23804         subtype before taking its address.
23805
23806 2004-10-26  Vincent Celier  <celier@gnat.com>
23807
23808         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
23809         (Is_Path_Name_Case_Sensitive): New function
23810
23811         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
23812         (Base_Name, Simple_Name, Current_Directory, Compose,
23813         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
23814         the result.
23815
23816 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
23817             Vasiliy Fofanov  <fofanov@act-europe.fr>
23818             Vincent Celier   <celier@gnat.com>
23819
23820         * gnat_ugn.texi: Generalize "finding memory problems" section into a
23821         "memory management issues" section and document some of the useful
23822         memory pools provided as part of the GNAT library.
23823         Remove "virtual" from declaration of A::method2 in
23824         the simple example of Ada/C++ mixed system.
23825         Library Projects may be virtually extended: their virtual extensions
23826         are not Library Projects.
23827         Added section on extending project hierarchies.
23828
23829 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
23830
23831         * adaint.c (__gnat_get_libraries_from_registry): Cast value
23832         to LPBYTE.
23833         (__gnat_portable_spawn): Remove const.
23834
23835         * mingw32.h (MAXPATHLEN): Check for previous definition.
23836
23837 2004-10-17  Matthias Klose  <doko@debian.org>
23838
23839         * gnatvsn.ads: Set gnat library version to 4.0.
23840
23841 2004-10-05  Vincent Celier  <celier@gnat.com>
23842
23843         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
23844
23845 2004-10-04  Laurent Guerby  <laurent@guerby.net>
23846
23847         PR ada/15156
23848         * Makefile.in: Define and use RANLIB_FLAGS.
23849
23850 2004-10-04  Pascal Obry  <obry@gnat.com>
23851
23852         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
23853         other x86 platforms).
23854
23855 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
23856
23857         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
23858         in general and triggers stack alignment adjustment for thread entry
23859         points on targets where this is necessary.
23860
23861 2004-10-04  Bernard Banner  <banner@gnat.com>
23862
23863         PR ada/13897
23864         * Makefile.in: Add section for powerpc linux
23865         Add variant i-vxwork-x86.ads
23866
23867         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
23868
23869 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
23870
23871         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
23872         table registration calls when need be. Ensures no reference to the crt
23873         ctors symbol are issued in the SJLJ case, which avoids possible
23874         undefined symbol errors in the case of modules to be statically linked
23875         with the kernel.
23876
23877 2004-10-04  Javier Miranda  <miranda@gnat.com>
23878
23879         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
23880         in-line the code corresponding to subprogram Analyze_Actuals. In
23881         addition, analyze the actuals only in case of subprogram call.
23882
23883 2004-10-04  Ed Falis  <falis@gnat.com>
23884
23885         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
23886
23887 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
23888
23889         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
23890         in the documentation.
23891
23892 2004-10-04  Robert Dewar  <dewar@gnat.com>
23893
23894         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
23895         IF and CASE.
23896         (Analyze_Block_Statement): Add circuitry to detect following dead code
23897         (Check_Unreachable_Code): Handle case of block exit
23898
23899 2004-10-04  Robert Dewar  <dewar@gnat.com>
23900
23901         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
23902         (XMatchD): Avoid warning for Logic_Error call
23903
23904 2004-10-04  Robert Dewar  <dewar@gnat.com>
23905
23906         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
23907         consider expressions buried within a procedure actual to be an actual.
23908         This caused some blowups with uses of packed slices within a procedure
23909         actual.
23910
23911 2004-10-04  Robert Dewar  <dewar@gnat.com>
23912
23913         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
23914         longer need to be initialized to zero.
23915         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
23916         initialized to zero.
23917
23918         * checks.adb (Expr_Known_Valid): Packed arrays are now always
23919         considered valid, even if the representation is modular. That's correct
23920         now that we no longer initialize packed modular arrays to zero.
23921
23922         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
23923         suffixes. These are now documented as the only cases in which the
23924         debugger ignores outer records.
23925         Previously, the spec allowed arbitrary suffixes for this purpose.
23926         Change name of LJM to JM for packed array pad records
23927         Create separate section on packed array handling, and add a whole new
23928         set of comments to this section describing the situation with packed
23929         modular types and justification requirements depending on endianness.
23930
23931 2004-10-04  Robert Dewar  <dewar@gnat.com>
23932
23933         * a-except.adb: Add a comment for last change
23934
23935         * einfo.ads: Minor spelling correction in comment
23936
23937         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
23938
23939         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
23940         messages.
23941
23942         * sem_util.ads: Minor comment update
23943
23944 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
23945
23946         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
23947         Inline_Always when in Configurable_Run_Time mode.
23948
23949         * sem_prag.adb (Process_Convention): If entity is an inherited
23950         subprogram, apply convention to parent subprogram if in same scope.
23951         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
23952         when in Configurable_Run_Time mode.
23953
23954 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
23955
23956         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
23957         class_wide type after component list has been inherited.
23958
23959 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
23960
23961         * sem_ch12.adb (Check_Generic_Actuals): New predicate
23962         Denotes_Previous_Actual, to handle properly the case of a private
23963         actual that is also the component type of a subsequent array actual.
23964         The visibility status of the first actual is not affected when the
23965         second is installed.
23966         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
23967         make fully recursive the treatment of formals of packages declared
23968         with a box.
23969         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
23970         the above on exit from an instantiation.
23971         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
23972         current instantiation which is now complete.
23973         (Analyze_Package_Instantiation): No instantiated body is needed if the
23974         main unit is generic. Efficient, and avoid anomalies when a instance
23975         appears in a package accessed through rtsfind.
23976
23977 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
23978
23979         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
23980         do not generate a declaration for a temporary if the call is part of a
23981         library-level instantiation.
23982
23983 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
23984
23985         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
23986         searching for a limited component to flag.
23987
23988         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
23989         expansion of Input, to account for the fact that the implicit call
23990         generated by the attribute reference must freeze the user-defined
23991         stream subprogram. This is only relevant to 'Input, because it can
23992         appear in an object declaration, prior to the body of the subprogram.
23993
23994         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
23995         expansion can proceed and further errors uncovered.
23996         (Minor clean up): Fix cases of using | instead of \ for continuation
23997         messages.
23998
23999 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24000
24001         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
24002
24003         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
24004         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
24005         Use gcc_assert and gcc_unreachable.
24006
24007         * decl.c (gnat_to_gnu_entity, case object): Check and process a
24008         specified alignment before validating size.
24009         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
24010         stripped-down declaration for the type of the inner field when making
24011         a JM type.
24012
24013         * utils.c (finish_record_type): Do not compute the size in units
24014         incrementally. Instead compute it once for the rep clause case.
24015         Use gcc_assert and gcc_unreachable.
24016
24017 2004-10-04  Vincent Celier  <celier@gnat.com>
24018
24019         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
24020         in file name.
24021         (Is_Valid_Path_Name): Take '/' as a directory separator.
24022
24023 2004-10-04  Vincent Celier  <celier@gnat.com>
24024
24025         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
24026         (Extended_Project) only if Extended_Project is defined, to avoid
24027         assertion error.
24028         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
24029         resolved path.
24030         (Parse_Single_Project): Ditto.
24031
24032         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
24033         Add_To_Project_Path for virtual projects.
24034
24035 2004-10-04  Vincent Celier  <celier@gnat.com>
24036
24037         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
24038         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
24039         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
24040         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
24041         parameter Options_2.
24042
24043         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
24044         Build_Dynamic_Library with an empty Options_2.
24045
24046         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
24047         default anymore.
24048
24049         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
24050         directory separator, if any.
24051         (Gprmake): Do not allow mains on the command line for library projects.
24052         Do not attempt to link when the project is a library project.
24053         (Library_Opts): New table to store Library_Options.
24054         (Build_Library): If Library_Options is specified, pass these options
24055         when building a shared library.
24056
24057 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
24058
24059         * s-tposen.adb (Service_Entry): The object must be always unlocked at
24060         the end of this procedure now that the unlock operation was inserted
24061         by the expander.
24062
24063 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
24064
24065         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
24066         corresponding to the Preallocated_Stacks flags in System.
24067         (Get_Target_Parameters): Including the processing for
24068         Preallocated_Stacks.
24069
24070         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
24071         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
24072         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
24073         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
24074         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
24075         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
24076         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
24077         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
24078         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
24079         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
24080         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
24081         used to signal whether the compiler creates the required stacks and
24082         descriptors for the different tasks (when True) or it is done by the
24083         underlying operating system at run time (when False).
24084         It is initially set to False in all targets.
24085
24086         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
24087         if it is supported by the target.
24088         (Make_Task_Create_Call): Pass the stack address if it has been
24089         previously created. Otherwise pass a Null_Address.
24090
24091         * snames.adb: Add _stack.
24092
24093         * snames.ads: Add Name_uStack. Required to allow the expander to
24094         statically allocated task stacks.
24095
24096         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
24097         Stack_Address argument.
24098         Check that its value is equal to Null_Address because this target does
24099         not support the static stack allocation.
24100
24101 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
24102
24103         * usage.adb: Change "pragma inline" to "pragma Inline" in information
24104         and error messages
24105
24106 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
24107
24108         * exp_dist.adb: Split declaration of asynchronous flag out of
24109         Add_RACW_Read_Attribute.
24110         Minor reformatting for better alignment with PolyORB version.
24111         Store the entity for the asynchronous flag of an RACW, rather than the
24112         expression, in the asynchronous flags table. This will allow this flag
24113         to be used in other subprograms beside Add_RACW_Read_Attribute.
24114
24115 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
24116
24117         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
24118         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
24119         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
24120         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
24121         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
24122         sockets constant MSG_NOSIGNAL (Linux-specific).
24123         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
24124         all Send operations.
24125         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
24126         from trigerring SIGPIPE.
24127         Rename components to avoid clash with Ada 2005 possible reserved
24128         word 'interface'.
24129         (Check_Selector): When the select system call returns with an error
24130         condition, propagate Socket_Error to the caller.
24131
24132 2004-10-01  Jan Hubicka  <jh@suse.cz>
24133
24134         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
24135
24136 2004-09-23  Robert Dewar  <dewar@gnat.com>
24137
24138         PR ada/17540
24139         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
24140         instead do this at freeze time (we won't do it if there is an address
24141         clause).
24142         Change "pragma inline" to "pragma Inline" in information and error
24143         messages.
24144         Minor reformatting.
24145
24146         * freeze.adb (Check_Address_Clause): Remove previous change, not the
24147         right way of doing things after all.
24148         (Freeze_Entity): For object, set Is_Public for imported entities
24149         unless there is an address clause present.
24150
24151 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
24152
24153         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
24154         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
24155         ensures proper handling of types with rep clauses, which might have
24156         their TYPE_SIZE set already.
24157
24158 2004-09-21  Robert Dewar  <dewar@gnat.com>
24159
24160         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
24161         packed array types in both little- and big-endian cases. This change
24162         ensures that we no longer count on the unused bits being initialized
24163         for such types (and in particular ensures that equality testing will
24164         only read the relevant bits).
24165         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
24166         These changes mean that we no longer need to initialize small packed
24167         arrays.
24168         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
24169         optimization to an LJM field as to its parent field.
24170
24171         * ada-tree.h, trans.c, utils.c, utils2.c:
24172         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
24173
24174 2004-09-20  Jan Hubicka  <jh@suse.cz>
24175
24176         * utils.c (gnat_finalize): Remove.
24177         (end_subprog_body): Directly call cgraph_finalize_function;
24178         do not lower the nested functions.
24179
24180 2004-09-20  Robert Dewar  <dewar@gnat.com>
24181
24182         PR ada/17540
24183         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
24184         if an address clause is present, since that means that the Import
24185         should be ignored.
24186
24187 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
24188
24189         * 5tsystem.ads: Removed, no longer used.
24190
24191 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
24192             Zack Weinberg  <zack@codesourcery.com>
24193
24194         * ada-tree.def: Use tree_code_class enumeration constants
24195         instead of code letters.
24196         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
24197         Update for new tree-class enumeration constants.
24198
24199 2004-09-17  Vincent Celier  <celier@gnat.com>
24200
24201         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
24202         capabilities of the general project manager.
24203
24204 2004-09-09  Vincent Celier  <celier@gnat.com>
24205
24206         * a-direct.ads: Add pragma Ada_05
24207         (Directory_Entry_Type): Give default value to component Kind to avoid
24208         not initialized warnings.
24209
24210         * a-direct.adb (Current_Directory): Remove directory separator at the
24211         end.
24212         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
24213         an existing directory.
24214         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
24215         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
24216         Convert the result to File_Size.
24217
24218         * prj.ads: (Project_Error): New exception
24219
24220         * prj-attr.adb: Except in procedure Initialize, Fail comes from
24221         Prj.Com, not from Osint.
24222         (Attrs, Package_Attributes): Tables moved to private part of spec
24223         (Add_Attribute, Add_Unknown_Package): Moved to new child package
24224         Prj.Attr.PM.
24225         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
24226         Prj.Project_Error after call to Fail.
24227         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
24228         Fail. Check that package name is not already in use.
24229
24230         * prj-attr.ads: Comment updates to indicate that all subprograms may be
24231         used by tools, not only by the project manager, and to indicate that
24232         exception Prj.Prj_Error may be raised in case of problem.
24233         (Add_Unknown_Package, Add_Attribute): Moved to new child package
24234         Prj.Attr.PM.
24235         (Attrs, Package_Attributes): Table instantiations moved from the body to
24236         the private part to be accessible from Prj.Attr.PM body.
24237
24238         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
24239         from new package Prj.Attr.PM.
24240         (Parse_Attribute_Declaration): Call Add_Attribute from new package
24241         Prj.Attr.PM.
24242
24243         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
24244
24245         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
24246         instead of Elaboration_Checks).
24247
24248         * a-calend.adb: Minor reformatting
24249
24250 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24251
24252         * gigi.h (maybe_pad_type): New declaration.
24253         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
24254
24255         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
24256
24257         * cuintp.c: Convert to use buildN.
24258
24259         * decl.c (maybe_pad_type): No longer static.
24260         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
24261         target pointer.
24262         Convert to use buildN.
24263
24264         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
24265         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
24266         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
24267         RHS.
24268         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
24269         (gnat_gimplify_expr, case ADDR_EXPR): New case.
24270         Convert to use buildN.
24271
24272         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
24273         TREE_READONLY for const.
24274         Convert to use buildN.
24275
24276         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
24277         (create_var_decl): Refine when TREE_STATIC is set.
24278         Convert to use buildN.
24279
24280 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
24281
24282         * gnat_ugn.texi: Delete text relating to checking of ali and object
24283         consistency.
24284
24285         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
24286         routines.
24287
24288 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
24289
24290         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
24291         pragmas recognized by GNAT.
24292
24293         * gnat_rm.texi: Document pragma Detect_Blocking.
24294
24295         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
24296         raise Program_Error if called from a protected operation.
24297
24298         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
24299         the protected action nesting level.
24300         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
24301         protected action nesting level.
24302         (Unlock): When pragma Detect_Blocking is active decrease the protected
24303         action nesting level.
24304
24305         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
24306         Protected_Action_Nesting.
24307
24308         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
24309         Common_ATCB record. It contains the dynamic level of protected action
24310         nesting for each task. It is needed for checking whether potentially
24311         blocking operations are called from protected operations.
24312         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
24313         Detect_Blocking is active or not in the partition.
24314
24315         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
24316         raise Program_Error if called from a protected operation.
24317         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
24318         Program_Error if called from a protected operation.
24319         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
24320         Program_Error if called from a protected operation.
24321
24322         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
24323         raise Program_Error if called from a protected operation.
24324
24325         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
24326         raise Program_Error if called from a protected operation, and increase
24327         the protected action nesting level.
24328         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
24329         Program_Error if called from a protected operation, and increase the
24330         protected action nesting level.
24331         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
24332         protected action nesting level.
24333
24334         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
24335         raise Program_Error if called from a protected operation, and increase
24336         the protected action nesting level.
24337         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
24338         Program_Error if called from a protected operation, and increase the
24339         protected action nesting level.
24340         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
24341         raise Program_Error if called from a protected operation.
24342         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
24343         active, raise Program_Error if called from a protected operation.
24344         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
24345         protected action nesting level.
24346
24347         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
24348         insertion of the statement raising Program_Error. The run time
24349         contains the required machinery for handling that.
24350
24351         * sem_util.ads: Change comment associated to procedure
24352         Check_Potentially_Blocking_Operation.
24353         This procedure does not insert a call for raising the exception because
24354         that is currently done by the run time.
24355
24356         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
24357
24358         * init.c: Add the global variable __gl_detect_blocking that indicates
24359         whether pragma Detect_Blocking is active (1) or not (0). Needed for
24360         making the pragma available at run time.
24361         (__gnat_set_globals): Pass and update the detect_blocking parameter.
24362
24363         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
24364         pragma Detect_Blocking is active.
24365
24366         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
24367
24368         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
24369         DB is found in the ali file. Any unit compiled with pragma
24370         Detect_Blocking active forces its effect in the whole partition.
24371
24372         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
24373         Detect_Blocking is active and delay is called from a protected
24374         operation.
24375
24376         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
24377         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
24378         Detect_Blocking is active (0 otherwise).
24379         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
24380         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
24381         otherwise).
24382
24383 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
24384
24385         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
24386         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
24387         package.
24388
24389         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
24390         (Register_Receiving_Stub): Add Subp_Info formal parameter.
24391         Update API in placeholder implemetation of s-parint to reflect changes
24392         in distribution runtime library.
24393
24394         * sem_ch3.adb (Expand_Derived_Record): Rename to
24395         Expand_Record_Extension.
24396
24397         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
24398         primitive operations of potentially distributed object types that have
24399         non-controlling anonymous access formals.
24400
24401         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
24402         subprogram.
24403         New implementation of expansion for remote access-to-subprogram types,
24404         based on the RACW infrastructure.
24405         This version of sem_dist is compatible with PolyORB/DSA as well as
24406         GLADE.
24407
24408         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
24409         Asynchrronous that applies to a remote access-to-subprogram type, mark
24410         the underlying RACW type as asynchronous.
24411
24412         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
24413          __gnat_using_gnu_linker to 1.
24414
24415         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
24416         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
24417         GNAT.Perfect_Hash_Generators, and remove the empty
24418         GNAT.Perfect_Hash package.
24419
24420         * atree.adb: Minor reformatting
24421
24422         * exp_ch3.adb (Expand_Derived_Record): Rename to
24423         Expand_Record_Extension.
24424         (Build_Record_Init_Proc.Build_Assignment): The default expression in
24425         a component declaration must remain attached at that point in the
24426         tree so New_Copy_Tree copies it if the enclosing record type is derived.
24427         It is therefore necessary to take a copy of the expression when building
24428         the corresponding assignment statement in the init proc.
24429         As a side effect, in the case of a derived record type, we now see the
24430         original expression, without any rewriting that could have occurred
24431         during expansion of the ancestor type's init proc, and we do not need
24432         to go back to Original_Node.
24433
24434         * exp_ch3.ads (Expand_Derived_Record): Rename to
24435         Expand_Record_Extension.
24436
24437         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
24438         Returns the RACW type used to implement a remote access-to-subprogram
24439         type.
24440         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
24441         New subprograms. Used to create a proxy tagged object for a remote
24442         subprogram. The proxy object is used as the designated object
24443         for RAS values on the same partition (unless All_Calls_Remote applies).
24444         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
24445         System.Partition_Interface.Get_Unique_Remote_Pointer.
24446         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
24447         Renamed from Add_RAS_*_Attribute.
24448         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
24449         subprograms.
24450         New implementation of expansion for remote access-to-subprogram types,
24451         based on the RACW infrastructure.
24452
24453         * exp_dist.ads (Copy_Specification): Update comment to note that this
24454         function can copy the specification from either a subprogram
24455         specification or an access-to-subprogram type definition.
24456
24457 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
24458
24459         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
24460         in an instance, between an explicit subprogram an one inherited from a
24461         type derived from an actual.
24462
24463         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
24464         add a polling call if the subprogram is to be inlined by the back-end,
24465         to avoid repeated calls with multiple inlinings.
24466
24467         * checks.adb (Apply_Alignment_Check): If the expression in the address
24468         clause is a call whose name is not a static entity (e.g. a dispatching
24469         call), treat as dynamic.
24470
24471 2004-09-09  Robert Dewar  <dewar@gnat.com>
24472
24473         * g-trasym.ads: Minor reformatting
24474
24475         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
24476         packed arrays, since unused bits are expected to be zero for a
24477         comparison.
24478
24479 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
24480
24481         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
24482         comment.
24483
24484 2004-09-09  Pascal Obry  <obry@gnat.com>
24485
24486         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
24487         enable map file generation. Add the right option to generate the map
24488         file if Map_File is set to True.
24489
24490         * gnatdll.adb (Gen_Map_File): New variable.
24491         (Syntax): Add info about new -m (Map_File) option.
24492         (Parse_Command_Line): Add support for -m option.
24493         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
24494         Minor reformatting.
24495
24496 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
24497
24498         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
24499         new gnatdist implementation.
24500         Define a subpackage isolating the output routines specific to this
24501         verbose mode.
24502
24503 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
24504
24505         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
24506
24507         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
24508
24509 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
24510
24511         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
24512         internal unit.
24513
24514         * opt.ads: Add Ada_Version_Runtime constant used to decide which
24515         version of the language is used to compile the run time.
24516
24517 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
24518
24519         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
24520         of variable length temporaries for function return now that the
24521         back-end and gigi support it.
24522
24523 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24524
24525         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
24526
24527         * trans.c (struct stmt_group): Delete field GLOBAL.
24528         (gnat_init_stmt_group): Do not initialize it.
24529         (call_to_gnu): Use save_expr, not protect_multiple_eval.
24530         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
24531         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
24532         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
24533         (start_stmt_group): Likewise.
24534         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
24535
24536         * utils2.c (ggc.h): Include.
24537         (build_call_raise): Call build_int_cst, not build_int_2.
24538
24539         * utils.c (gnat_init_decl_processing): Fix arg to
24540         build_common_tree_nodes.
24541         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
24542         (gnat_define_builtin): Set built_in_decls.
24543         (init_gigi_decls): Call build_int_cst, not build_int_2.
24544
24545         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
24546         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
24547         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
24548         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
24549         SET_TYPE_MODULE): Use them.
24550         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
24551         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
24552         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
24553         SET_TYPE_ADA_SIZE): Likewise.
24554         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
24555         (DECL_CONST_CORRESPONDING_VAR,
24556         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
24557         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
24558         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
24559         (TYPE_RM_SIZE_NUM): New macro.
24560         (TYPE_RM_SIZE): Modified to use above.
24561
24562         * cuintp.c: (build_cst_from_int): New function.
24563         (UI_To_gnu): Use it.
24564
24565         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
24566         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
24567         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
24568         MIN_EXPR for the size, copy it into new.
24569
24570 2004-09-01  Robert Dewar  <dewar@gnat.com>
24571
24572         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
24573         packed indexed component where array is an IN OUT formal. This
24574         generated garbage code previously.
24575
24576         * gnat_ugn.texi: Document -fverbose-asm
24577
24578         * gnat-style.texi: Minor updates (note that boolean constants and
24579         variables are joined with AND/OR rather than short circuit forms).
24580
24581 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
24582
24583         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
24584         it is an upward conversion of an untagged type with no representation
24585         change.
24586
24587 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
24588
24589         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
24590         System.Partition_Interface.
24591
24592         * checks.adb (Apply_Access_Checks): Do not generate checks when
24593         expander is not active (but check for unset reference to prefix of
24594         dereference).
24595
24596         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
24597         pragma Debug as an if statement with a constant condition, for
24598         consistent treatment of entity references contained within the
24599         enclosed procedure call.
24600
24601 2004-09-01  Vincent Celier  <celier@gnat.com>
24602
24603         * bindgen.adb: (Set_EA_Last): New procedure
24604         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
24605         Set_EA_Last.
24606         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
24607         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
24608         linked without errors.
24609         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
24610         ST and EA.
24611         (Gen_Exception_Table_C): Correct same bugs
24612
24613         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
24614
24615         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
24616         on Windows, make sure that the drive letter is in upper case.
24617
24618         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
24619         Windows, when the drive letter is added and Case_Sensitive is True, the
24620         drive letter is forced to upper case.
24621
24622         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
24623         to Options_2 for the call to MLib.Utl.Gcc.
24624
24625         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
24626         directory separator when defining BASE_DIR.
24627
24628 2004-09-01  Pascal Obry  <obry@gnat.com>
24629
24630         * gprcmd.adb (Extend): Do not output trailing directory separator. This
24631         is not needed and it confuses Windows GNU/make which does not report
24632         directory terminated by a slash as a directory.
24633         (gprcmd): Idem for "pwd" internal command.
24634
24635         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
24636         target names rewrite to fix regressions with recent version of
24637         GNU/make. Starting with GNU/make 3.80 the pipe character was not
24638         handled properly anymore.
24639
24640 2004-09-01  Andreas Schwab  <schwab@suse.de>
24641
24642         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
24643         * raise.c [!IN_RTS]: Undef abort.
24644
24645 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
24646
24647         * utils2.c (build_allocator): Use ssize_int.
24648
24649         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
24650
24651 2004-08-27  Andreas Schwab  <schwab@suse.de>
24652
24653         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
24654
24655 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
24656             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24657
24658         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
24659
24660 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
24661
24662         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
24663         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
24664         * utils.c (init_gigi_decls): Likewise.
24665         * utils2.c (build_call_raise, build_allocator): Likewise.
24666
24667 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
24668
24669         * utils.c (gnat_init_decl_processing): Adjust
24670         build_common_tree_nodes call.
24671
24672 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
24673
24674         * utils2.c (build_allocator): Use build_int_cst for negative
24675         size types.
24676
24677 2004-08-18  Richard Henderson  <rth@redhat.com>
24678
24679         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
24680
24681 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
24682
24683         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
24684         call.s
24685         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
24686         (gnat_to_gnu): Likewise.
24687
24688 2004-08-16  Pascal Obry  <obry@gnat.com>
24689
24690         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
24691         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
24692         option and not mdll anymore. Update comment.
24693
24694 2004-08-16  Pascal Obry  <obry@gnat.com>
24695
24696         * bld.adb (Put_Include_Project): Properly handle directory separators
24697         on Windows.
24698
24699 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
24700
24701         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
24702         decreasing the number of allocated junk nodes while searching for the
24703         appropriate subprogram.
24704
24705 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
24706
24707         * cuintp.c (UI_To_gnu): Use build_int_cst..
24708         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
24709         * utils.c (init_gigi_decls): Likewise.
24710         * utils2.c (build_call_raise): Likewise.
24711
24712 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
24713
24714         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
24715         for a global aliased object with a variable size and an unconstrained
24716         nominal subtype, pretend there is no initializer if the one we have is
24717         incomplete, and avoid referencing an inexistant component in there. The
24718         part we have will be rebuilt anyway and the reference may confuse
24719         further operations.
24720
24721 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
24722
24723         * einfo.ads: Minor reformatting
24724
24725         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
24726         restrictions in the ALI if we only want to warn about violations.
24727
24728 2004-08-13  Vincent Celier  <celier@gnat.com>
24729
24730         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
24731         when creating a new Unit_Record in table Units.
24732
24733         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
24734         that are violated, if any.
24735
24736         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
24737         add directory separator if path already ends with a directory separator.
24738
24739 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
24740
24741         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
24742         unit, this is an attempt to inline a construct that is not available in
24743         the current restricted mode, so abort rather than trying to continue.
24744
24745         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
24746         discriminants that rename those of the parent, recover names of
24747         original discriminants for the constraint on the full view of the
24748         parent.
24749         (Complete_Private_Subtype): Do not create a subtype declaration if the
24750         subtype is an itype.
24751
24752         * gnat_rm.texi: Added section on implementation of discriminated
24753         records with default values for discriminants.
24754
24755 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
24756
24757         PR ada/15601
24758         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
24759         the second operand is overloaded.
24760
24761 2004-08-10  Richard Henderson  <rth@redhat.com>
24762
24763         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
24764         add __builtin_alloca.
24765
24766 2004-08-10  Richard Henderson  <rth@redhat.com>
24767
24768         * config-lang.in (boot_language): Yes.
24769
24770 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
24771
24772         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
24773         from complaining on potential uninitialized reference.
24774         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
24775         new specification and test explicitly for non-zero return value.
24776
24777         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
24778         returning C.int, to avoid using a derived boolean type.
24779
24780         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
24781         Duplicate_Subexpr_No_Checks in preference to direct use of
24782         Remove_Side_Effects and New_Copy_Tree.
24783         Clear Comes_From_Source on prefix of 'Size attribute reference.
24784
24785         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
24786         g-socthi-vxworks.adb: Change calls to
24787         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
24788         and test explicitly for non-zero return value.
24789
24790         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
24791         (Is_Socket_In_Set): Declare imported function as returning C.int, to
24792         avoid using a derived boolean type.
24793
24794 2004-08-09  Albert Lee  <lee@gnat.com>
24795
24796         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
24797
24798 2004-08-09  Pascal Obry  <obry@gnat.com>
24799
24800         * gnat_ugn.texi: Document new way to build DLLs on Windows using
24801         GCC's -shared option.
24802
24803         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
24804         Options_2 parameter (options put after object files).
24805
24806 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
24807
24808         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
24809         ignore overflows on low and high bounds of an index to also account for
24810         differences in signedness between sizetype and gnu_index_subtype.
24811         These are as legitimate as the ones caused by a lower TYPE_PRECISION
24812         on sizetype.
24813
24814 2004-08-09  Robert Dewar  <dewar@gnat.com>
24815
24816         * s-solita.ads, s-solita.adb: Minor reformatting
24817
24818         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
24819         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
24820         obsolescent section
24821         Add note that No_Implicit_Conditionals does not suppress
24822         run time constraint checks.
24823
24824         * vms_conv.ads: Minor reformatting
24825
24826         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
24827         and necessary for following change).
24828         (Mark): Return new format Mark_Id containing sec stack address
24829         (Release): Use sec stack address from Mark_Id avoiding Self call
24830
24831         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
24832         pointer (cleanup and necessary for following change).
24833         Define Mark_Id as record containing address of secondary stack, that way
24834         Release does not need to find the stack again, decreasing the number of
24835         calls to Self and improving efficiency.
24836
24837         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
24838
24839         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
24840         case variable into the individual case branches when possible.
24841
24842         * sem_ch11.adb: Minor reformatting
24843
24844         * prj.ads: Correct spelling of suffixs
24845
24846         * prj-nmsc.adb: Minor reformatting
24847         Correct spelling suffixs throughout (also in identifiers)
24848
24849         * freeze.adb: Minor spelling correction
24850
24851         * exp_ch2.adb: Cleanups to handling of Current_Value
24852         (no functional effect).
24853
24854         * bld.adb: Correct spelling of suffixs
24855
24856         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
24857
24858 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
24859
24860         PR ada/15408
24861         * sem_ch7.adb (Install_Private_Declarations): In the body of the
24862         package or of a child, private entities are both immediately_visible
24863         and not hidden.
24864
24865 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
24866
24867         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
24868         there are no range checks on the value of the literal.
24869
24870         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
24871         wrapped is the triggering alternative of an asynchronous select, action
24872         statements mustbe inserted before the select itself.
24873
24874         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
24875         case where the prefix is a protected function call.
24876         (Resolve_Attribute, case 'Access): The attribute reference on a
24877         subprogram is legal in a generic body if the subprogram is declared
24878         elsewhere.
24879
24880 2004-08-09  Vincent Celier  <celier@gnat.com>
24881
24882         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
24883         languages, otherwise building the library may fail with unresolved
24884         symbols.
24885         (Compile_Sources): Do not build libraries if -c switch is used
24886
24887         * gnatlink.adb (Process_Args): New switches -M and -Mmap
24888         (Write_Usage): If map file creation is supported, output new switches
24889         -M and -Mmap.
24890         (Gnatlink): When -M is specified, add the necessary switch(es) to the
24891         gcc call, when supported.
24892
24893         * Makefile.in: Added indepsw.o to the object list for gnatlink
24894         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
24895
24896         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
24897         indepsw.adb, indepsw.ads: New files.
24898
24899 2004-08-09  Bernard Banner  <banner@gnat.com>
24900
24901         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
24902
24903         * Makefile.in: add section for vxworks x86
24904
24905 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
24906
24907         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
24908         per-object constrained components where the discriminant is of an
24909         Access type.
24910         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
24911         the parent initialization procedure for derived Unchecked_Unions.
24912         Instead, derived Unchecked_Unions build their own initialization
24913         procedure.
24914         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
24915         Check the body of the subprogram for details.
24916         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
24917         functions for derived Unchecked_Union types by introducing a condition.
24918         Allow the creation of TSS equality functions for Unchecked_Unions.
24919         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
24920         Add formal parameter Discr to function signature. Discr is used to
24921         control the generated case statement for Unchecked_Union types.
24922         (Make_Eq_If): Rename formal parameter Node to E in function signature.
24923
24924         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
24925         Unchecked_Unions.
24926         Check the body of the subprogram for details.
24927         (Expand_Composite_Equality): Augment composite type equality to include
24928         correct handling of Unchecked_Union components.
24929         (Expand_N_In): Add condition to detect illegal membership tests when the
24930         subtype mark is a constrained Unchecked_Union and the expression lacks
24931         inferable discriminants, and build a Raise_Program_Error node.
24932         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
24933         to detect types that contain components of unconstrained Unchecked_Union
24934         subtype. Add condition to detect equality between types that have an
24935         unconstrained Unchecked_Union component, and build a Raise_Program_Error
24936         node. Add condition to detect equality between Unchecked_Union types
24937         that lack inferable discriminants, and build a Raise_Program_Error node.
24938         Otherwise build a TSS equality function call.
24939         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
24940         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
24941         with the operand lacking inferable discriminants, and build a Raise_
24942         Program_Error node.
24943         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
24944         composite equality.
24945         (Has_Inferable_Discriminants): Implement new predicate for objects and
24946         expressions of Unchecked_Union type. Check the body of subprogram for
24947         details.
24948         (Has_Unconstrained_UU_Components): Add function
24949         Component_Is_Unconstrained_UU. It is used to detect whether a single
24950         component is of an unconstrained Unchecked_Union subtype. Add function
24951         Variant_Is_Unconstrained_UU. It is used to detect whether a single
24952         component inside a variant is of an unconstrained Unchecked_Union type.
24953
24954         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
24955         inferred discriminant values. Add condition to generate a case
24956         statement with an inferred discriminant as the switch.
24957         (Make_Component_List_Assign): Introduce a Boolean flag that determines
24958         the behaviour of the subprogram in the presence of an Unchecked_Union.
24959         Add condition to trigger the usage of the inferred discriminant value
24960         as the generated case statement switch.
24961         (Make_Field_Assign): Introduce a Boolean flag that determines the
24962         behaviour of the subprogram in the presence of an Unchecked_Union. Add
24963         condition to trigger the usage of the inferred discriminant value as
24964         the right-hand side of the generated assignment.
24965
24966         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
24967         parameter generation when dealing with Unchecked_Unions.
24968
24969         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
24970         checks for Unchecked_Unions.
24971
24972         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
24973
24974         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
24975         Raise_Program_Error nodes for the execution of Read and Write
24976         attributes of Unchecked_Union types and the execution of Input and
24977         Output attributes of Unchecked_Union types that lack default
24978         discriminant values.
24979
24980         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
24981         Unchecked_Union. Add procedure Check_Component. It is used to inspect
24982         per-object constrained components of Unchecked_Unions for being
24983         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
24984         check individual components withing a variant.
24985
24986         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
24987         comparison of Unchecked_Unions.
24988         (Resolve_Equality_OP): Remove guard that prevents equality between
24989         Unchecked_Unions.
24990
24991         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
24992         of component subtypes for Unchecked_Union components.
24993         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
24994         since it is the actual subtype.
24995
24996         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
24997         pass of Unchecked_Union subtypes as generic actuals to formal types
24998         that lack known_discriminant_parts or that are derived Unchecked_Union
24999         types, and do nothing. In any other case, produce an error message.
25000
25001         * sem_ch3.adb (Analyze_Component_Declaration): Add function
25002         Contains_POC. It determines whether a constraint uses the discriminant
25003         of an enclosing record type.
25004         Add condition to detect per-object constrained component and set the
25005         appropriate flag.
25006         (Derived_Type_Declaration): Remove guard that prevents derivation from
25007         Unchecked_Union types.
25008         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
25009         Union subtypes.
25010
25011         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
25012         references to Unchecked_Union discriminants.
25013
25014         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
25015         formal generation when dealing with Unchecked_Unions.
25016         (Set_Actual_Subtypes): Add condition to prevent generation of actual
25017         subtypes for Unchecked_Unions.
25018
25019         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
25020         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
25021         completions of discriminated partial views by Unchecked_Unions and
25022         produce an error message.
25023
25024 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25025
25026         * trans.c (struct stmt_group): New field, GLOBAL.
25027         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
25028         (struct elab_info): New struct.
25029         (elab_info_list, gnu_elab_proc_stack): New variables.
25030         (Compilation_Unit_to_gnu): New procedure.
25031         (gigi): Call it and also handle elaboration procs we've saved.
25032         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
25033         global field from parent.
25034         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
25035         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
25036         (start_stmt_group): Initialize global field from parent.
25037         (add_decl_expr): Set to global for current statement group.
25038         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
25039         post.
25040
25041         * utils.c (global_bindings_p): True when no current_function_decl; no
25042         longer check current_binding_level.
25043
25044 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
25045
25046         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
25047         choice.
25048
25049         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
25050
25051 2004-08-06  Andreas Schwab  <schwab@suse.de>
25052
25053         * utils.c (gnat_define_builtin): Remove second parameter of
25054         make_decl_rtl.
25055         (begin_subprog_body): Likewise.
25056
25057 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
25058
25059         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
25060         optimization, not supported by the tree-ssa back-end.
25061
25062 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
25063
25064         * s-mastop-irix.adb: Update comments.
25065
25066         * a-except.adb (Exception_Information): Raise Constraint_Error if
25067         exception Id is Null_Id.
25068         This is required behavior, which is more reliably and clearly checked
25069         at the top level interface level.
25070
25071 2004-07-26  Javier Miranda  <miranda@gnat.com>
25072
25073         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
25074         call if a component has no default_expression and the box is used.
25075
25076         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
25077         default_expression and you use box, it behaves as if you had declared a
25078         stand-alone object.
25079         (Resolve_Record_Aggregate): If a component has no default_expression and
25080         you use box, it behaves as if you had declared a stand-alone object.
25081
25082         * sem_ch10.adb (Install_Siblings): Do not make visible the private
25083         entities of private-with siblings.
25084
25085 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
25086
25087         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
25088         for a component of an itype, set the parent pointer for analysis,
25089         there is no list in which to insert it.
25090
25091         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
25092         bona-fide renamings, not for inherited operations.
25093
25094         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
25095         actual for a formal that is an access parameter, create local
25096         finalization list even if the expression is not an aggregate.
25097
25098 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
25099
25100         PR ada/16213
25101         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
25102         Diagnose properly illegal subprogram renamings that are library units.
25103
25104 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
25105
25106         PR ada/15588
25107         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
25108         conversion rewritten as an unchecked conversion, check that original
25109         expression is a variable.
25110
25111         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
25112         unchecked_conversion, create new node rather than rewriting in place,
25113         to preserve original construct.
25114
25115 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25116
25117         * gigi.h (gnat_expand_body): Deleted.
25118
25119         * Make-lang.in: (trans.o): Depends on function.h.
25120
25121         * misc.c: (gnat_expand_body): Moved to here.
25122
25123         * trans.c (gnat_expand_body_1): Deleted.
25124         (gnat_expand_body): Moved from here.
25125         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
25126         (add_stmt): Check for marked visited with global_bindings_p.
25127         (gnat_gimplify_expr, case COMPONENT_REF): New case.
25128         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
25129
25130         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
25131         VIEW_CONVERT_EXPR if not operation type.
25132
25133         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
25134         fat pointer.
25135
25136         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
25137         changes: reformatting of negation operators, removing unneeded
25138         inequality comparison with zero, converting equality comparisons with
25139         zero to negations, changing int/0/1 to bool/false/true, replace calls
25140         to gigi_abort with abort, and various other similar changes.
25141
25142 2004-07-26  Vincent Celier  <celier@gnat.com>
25143
25144         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
25145         "setup".
25146
25147         * make.adb (Gnatmake): Fail when a library is not present and there is
25148         no object directory.
25149
25150         * mlib-prj.adb (Check_Library): No need to check if the library needs
25151         to be rebuilt if there is no object directory, hence no object files
25152         to build the library.
25153
25154         * opt.ads (Setup_Projects): New Boolean flag.
25155
25156         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
25157         Location.
25158         Create directory when Kind /= "" and in "gnat setup". Report error if
25159         directory cannot be created.
25160         (Ada_Check): Create library interface copy dir if it does not exist
25161         and we are in "gnat setup".
25162         (Find_Sources): No error if in "gnat setup" and no Ada sources were
25163         found.
25164         (Language_Independent_Check): Create object directory, exec directory
25165         and/or library directory if they do not exist and we are in
25166         "gnat setup".
25167
25168         * vms_conv.ads: (Command_Type): New command Setup.
25169
25170         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
25171
25172         * vms_data.ads: Add qualifiers/switches for new built-in command
25173         "setup".
25174
25175 2004-07-25  Richard Henderson  <rth@redhat.com>
25176
25177         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
25178         DECL_IGNORED_P on RESULT_DECL.
25179
25180 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
25181
25182         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
25183         allocation and potentially overflowing update with
25184         Tailored_Exception_Information. Use the sec-stack free procedural
25185         interface to output Exception_Information instead.
25186
25187         * a-except.adb (To_Stderr): New subprogram for character, and string
25188         version moved from a-exextr to be visible from other separate units.
25189         (Tailored_Exception_Information): Remove the procedural version,
25190         previously used by the default Last_Chance_Handler and not any more.
25191         Adjust various comments.
25192
25193         * a-exexda.adb: Generalize the exception information procedural
25194         interface, to minimize the use of secondary stack and the need for
25195         local buffers when the info is to be output to stderr:
25196         (Address_Image): Removed.
25197         (Append_Info_Character): New subprogram, checking for overflows and
25198         outputing to stderr if buffer to fill is of length 0.
25199         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
25200         (Append_Info_Address, Append_Info_Exception_Name,
25201         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
25202         Append_Info_Basic_Exception_Traceback,
25203         Append_Info_Exception_Information): New subprograms.
25204         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
25205         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
25206         Exception_Info_Maxlength, Exception_Name_Length,
25207         Exception_Message_Length): New subprograms.
25208         (Exception_Information): Use Append_Info_Exception_Information.
25209         (Tailored_Exception_Information): Use
25210         Append_Info_Basic_Exception_Information.
25211         Export services for the default Last_Chance_Handler.
25212
25213         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
25214         other separate units.
25215
25216 2004-07-20  Vincent Celier  <celier@gnat.com>
25217
25218         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
25219
25220 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
25221
25222         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
25223         emit itype references for the designated types of component types that
25224         are declared outside of the full record declaration, and that may
25225         denote a partial view of that record type.
25226
25227 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
25228
25229         PR ada/15607
25230         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
25231         which is the designated type in an access component declaration, to the
25232         list of incomplete dependents of the parent type, to avoid elaboration
25233         issues with out-of-scope subtypes.
25234         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
25235         full view of the parent.
25236
25237 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
25238
25239         PR ada/15610
25240         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
25241         entities that are hidden, such as references to generic actuals
25242         outside an instance.
25243
25244 2004-07-20  Javier Miranda  <miranda@gnat.com>
25245
25246         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
25247         support to the new notation.
25248         (Analyze_Selected_Component): Add call to Try_Object_Operation.
25249
25250 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
25251
25252         * s-taprob.adb: Adding the elaboration code required for initializing
25253         the tasking soft links that are common to the full and the restricted
25254         run times.
25255
25256         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
25257         restricted run time has been moved to the package
25258         System.Soft_Links.Tasking.
25259
25260         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
25261         restricted run time has been moved to the package
25262         System.Soft_Links.Tasking.
25263
25264         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
25265
25266         * s-solita.ads, s-solita.adb: New files.
25267
25268 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25269
25270         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
25271         Case_Statement_to_gnu): Split off from gnat_to_gnu.
25272         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
25273         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
25274         Exception_Handler_to_gnu_zcx): Likewise.
25275
25276 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
25277
25278         * gigi.h (builtin_function): Declare.
25279
25280 2004-07-15  Robert Dewar  <dewar@gnat.com>
25281
25282         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
25283         reformatting
25284
25285         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
25286         access values as an example of a warning.
25287
25288         * gnat_rm.texi: Document new attribute Has_Access_Values
25289
25290         * gnat-style.texi: Document that box comments belong on nested
25291         subprograms
25292
25293         * sem_util.ads (Has_Access_Values): Improved documentation
25294
25295         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
25296
25297         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
25298         (Process_Interface_Name): Call to this new procedure
25299         (Set_Extended_Import_Export_External_Name): Call to this new procedure
25300
25301         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
25302
25303         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
25304
25305         * einfo.ads: Minor comment typo fixed
25306
25307 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
25308
25309         * snames.adb: Add _atcb.
25310
25311         * snames.ads: Add Name_uATCB.
25312
25313         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
25314         (in the expanded code) when using the restricted run time.
25315
25316         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
25317         a in parameter in order to allow ATCBs to be preallocated (in the
25318         expanded code).
25319
25320         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
25321         order to allow ATCBs to be preallocated. In case of error, the ATCB is
25322         deallocated in System.Tasking.Stages.
25323
25324         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
25325         order to allow ATCBs to be preallocated.
25326
25327         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
25328         here. It was previously done in Initialize_ATCB.
25329
25330         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
25331
25332         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
25333         Restricted run time.
25334
25335         * exp_ch3.adb: When using the Restricted run time, pass the
25336         preallocated Ada_Task_Control_Block when creating a task.
25337
25338 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
25339
25340         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
25341         function call that is itself an actual in an enclosing call, diagnose
25342         problem here rather than assuming that resolution will catch it.
25343
25344         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
25345         the local copy of a generic unit for a formal package, and the generic
25346         is a child unit, install private part of ancestors before compiling
25347         private part of spec.
25348
25349         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
25350         use scope entities rather than tree structures, to handle properly
25351         parent units that are instances rewritten as bodies for inlining
25352         purposes.
25353
25354         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
25355         Remove_Parents): Handle properly a parent unit that is an
25356         instantiation, when the unit has been rewritten as a body for inlining
25357         purposes.
25358
25359         * par.adb (Goto_List): Global variable to collect goto statements in a
25360         given unit, for use in detecting natural loops.
25361
25362         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
25363         use in detecting natural loops.
25364
25365         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
25366         backwards goto's, and rewrite as a infinite loop, to improve locality
25367         of temporaries.
25368
25369         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
25370         subcomponent that includes an indexed reference, to prevent the
25371         generation of copies that would miscompile the desired assignment
25372         statement.
25373         (Build_Task_Image_Decls): Add a numeric suffix to
25374         generated name for string variable, to avoid spurious conflicts with
25375         the name of the type of a single protected object.
25376
25377         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
25378         loop with an explicit exit statement, to avoid generating an
25379         out-of-range value with 'Succ leading to spurious constraint_errors
25380         when compiling with -gnatVo.
25381
25382 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
25383
25384         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
25385         might not be analyzed yet, even if its Etype is already set (case of an
25386         unchecked conversion built using Unchecked_Convert_To, for example).
25387         If the prefix has already been analyzed, this will be a nop anyway.
25388
25389         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
25390         controller type, or an assignment of a record type with controlled
25391         components, copy only user data, and leave the finalization chain
25392         pointers untouched.
25393
25394 2004-07-15  Vincent Celier  <celier@gnat.com>
25395
25396         * make.adb (Collect_Arguments): Improve error message when attempting
25397         to compile a source not part of any project, when -x is not used.
25398
25399         * prj.ads: (Defined_Variable_Kind): New subtype
25400
25401         * prj-attr.adb (Register_New_Package): Two new procedures to register
25402         a package with or without its attributes.
25403         (Register_New_Attribute): Mew procedure to register a new attribute in a
25404         package.
25405         New attribute oriented subprograms: Attribute_Node_Id_Of,
25406         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
25407         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
25408         Next_Attribute.
25409         New package oriented subprograms: Package_Node_Id_Of,
25410         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
25411
25412         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
25413         type.
25414         (Package_Node_Id): Now a private, self initialized type
25415         (Register_New_Package): New procedure to register a package with its
25416         attributes.
25417         New attribute oriented subprograms: Attribute_Node_Id_Of,
25418         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
25419         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
25420         Next_Attribute.
25421         New package oriented subprograms: Package_Node_Id_Of,
25422         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
25423
25424         * prj-dect.adb (Parse_Attribute_Declaration,
25425         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
25426
25427         * prj-makr.adb (Make): Parse existing project file before creating
25428         other files. Fail if there was an error during parsing.
25429
25430         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
25431         new spec of Prj.Attr.
25432
25433         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
25434         to new spec of Prj.Attr.
25435
25436 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25437
25438         * utils2.c: Fix typo in comment.
25439
25440 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25441
25442         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
25443         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
25444
25445 2004-07-14  Andreas Schwab  <schwab@suse.de>
25446
25447         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
25448
25449 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25450
25451         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
25452         object type.
25453         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
25454         TYPE_STUB_DECL.
25455
25456         * misc.c (gnat_types_compatible_p): New function.
25457         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
25458         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
25459
25460         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
25461         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
25462         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
25463         (mark_visited): Don't mark dummy type.
25464         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
25465         parameter, we must remove any LJM building from GNU_NAME.
25466         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
25467         (pos_to_constructor): Use int_const_binop.
25468         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
25469         PARM_DECL.
25470
25471         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
25472         (gnat_pushlevel): Set TREE_USE on BLOCK node.
25473         (gnat_install_builtins): Add __builtin_memset.
25474
25475 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
25476
25477         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
25478         for a renaming, stabilize the initialization expression if we are at a
25479         local level.  At the local level, uses of the renaming may be performed
25480         by a direct dereference of the initializing expression, and we don't
25481         want possible variables there to be evaluated for every use.
25482
25483         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
25484         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
25485         them on the way.  Account for the fact that we may introduce side
25486         effects in the process.
25487
25488 2004-07-13  Richard Henderson  <rth@redhat.com>
25489
25490         * misc.c (default_pass_by_ref): Use pass_by_reference.
25491
25492 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
25493
25494         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
25495         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
25496
25497 2004-07-08  Richard Henderson  <rth@redhat.com>
25498
25499         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
25500         commentary.
25501
25502 2004-07-06  Vincent Celier  <celier@gnat.com>
25503
25504         * vms_conv.ads: Minor reformatting.
25505         Alphabetical order for enumerated values of type Command_Type, to have
25506         the command in alphabetical order for the usage.
25507
25508         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
25509         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
25510
25511         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
25512
25513         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
25514         (Add_Archive_Path): Only add the global archive if there is one.
25515         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
25516         or not any object file to put in the global archive, and don't build
25517         a global archive if there is none.
25518         (X_Switches): New table
25519         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
25520         in the X_Switches table, if any.
25521         (Initialize): Make sure the X_Switches table is empty
25522         (Scan_Arg): Record -X switches in table X_Switches
25523
25524         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
25525
25526         * make.adb: Minor comment fix
25527
25528         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
25529         invoked with directory information, add the directory in front of the
25530         path.
25531
25532         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
25533         invoked with directory information, add the directory in front of the
25534         path.
25535
25536         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
25537         when Keep_Temporary_Files is False.
25538         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
25539         directory information, add the directory in front of the path.
25540         When not on VMS, handle new switch -dn before the command to set
25541         Keep_Temporary_Files to True.
25542         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
25543         everywhere.
25544
25545         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
25546         invoked with directory information, add the directory in front of the
25547         path.
25548
25549 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
25550
25551         * snames.ads, snames.adb (Name_Stub): New name for the distributed
25552         systems annex.
25553
25554         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
25555         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
25556
25557         * g-socket.adb (To_Timeval): Fix incorrect conversion of
25558         Selector_Duration to Timeval for the case of 0.0.
25559
25560         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
25561         documentation from Evolve_And_Then.
25562
25563 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
25564
25565         * s-taprop-tru64.adb, s-taprop-os2.adb,
25566         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
25567
25568 2004-07-06  Robert Dewar  <dewar@gnat.com>
25569
25570         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
25571         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
25572         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
25573         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
25574         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
25575         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
25576         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
25577         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
25578         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
25579         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
25580         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
25581         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
25582         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
25583         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
25584         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
25585         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
25586         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
25587         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
25588         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
25589         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
25590         vms_data.ads: Minor reformatting,
25591         Fix bad box comment format.
25592
25593         * gnat_rm.texi: Fix minor grammatical error
25594
25595         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
25596
25597         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
25598         more cases of discriminated records to be recognized as not needing a
25599         secondary stack.
25600         (Has_Access_Values): New function.
25601
25602         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
25603
25604         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
25605         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
25606         with LRM terminology).
25607         Change terminology in comments primitive type => elementary type.
25608
25609 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
25610
25611         PR ada/15602
25612         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
25613         parameters do not impose any requirements on the presence of a body.
25614
25615 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
25616
25617         PR ada/15593
25618         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
25619         compilation unit and is in an open scope at the point of instantiation,
25620         assume that a body may be present later.
25621
25622 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
25623
25624         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
25625         Improve error message when specified size is not supported.
25626
25627         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
25628         is never a primitive operation.
25629
25630 2004-07-05  Andreas Schwab  <schwab@suse.de>
25631
25632         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
25633         RECORD_OR_UNION_CHECK.
25634         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
25635
25636 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
25637
25638         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
25639         dependency on xgnatugn, instead build it via a submake.
25640         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
25641
25642 2004-07-04  Richard Henderson  <rth@redhat.com>
25643
25644         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
25645
25646 2004-07-01  Richard Henderson  <rth@redhat.com>
25647
25648         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
25649         * utils.c (max_size): Likewise.
25650
25651 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25652
25653         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
25654         and rest_of_type_compilation; add arg to create_*_decl.
25655         (annotate_decl_with_node): Deleted.
25656         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
25657         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
25658         (get_current_block_context, gnat_pushdecl): New declarations.
25659         (gnat_init_stmt_group): Likewise.
25660         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
25661         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
25662         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
25663         (gnat_init): Call gnat_init_stmt_group.
25664         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
25665         (gnu_pending_elaboration_list): Deleted.
25666         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
25667         (gigi): Rearrange initialization calls and move some to last above.
25668         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
25669         Delete calls to add_decl_expr; add arg to create_*_decl.
25670         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
25671         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
25672         begin_subprog_body and call it.
25673         Don't push and pop ggc context.
25674         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
25675         (add_stmt): Remove handling of DECL_EXPR from here.
25676         If not in function, mark visited.
25677         (add_decl_expr): Put global at top level.
25678         Check for cases of DECL_INITIAL we have to handle here.
25679         (process_type): Add extra arg to create_type_decl.
25680         (build_unit_elab): Rework to just gimplify.
25681         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
25682         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
25683         (get_pending_elaborations, pending_elaborations_p): Likewise.
25684         (push_pending_elaborations, pop_pending_elaborations): Likewise.
25685         (get_elaboration_location, insert_elaboration_list): Likewise.
25686         (gnat_binding_level): Renamed from ada_binding_level.
25687         (init_gnat_to_gnu): Don't clear pending_elaborations.
25688         (global_bindings_p): Treat as global if no current_binding_level.
25689         (set_current_block_context): New function.
25690         (gnat_pushdecl): Renamed from pushdecl; major rework.
25691         All callers changed.
25692         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
25693         (finish_record_type): Call call pushdecl for stub decl.
25694         (function_nesting_depth): Deleted.
25695         (begin_subprog_body): Delete obsolete code.
25696         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
25697
25698 2004-06-28  Robert Dewar  <dewar@gnat.com>
25699
25700         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
25701         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
25702         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
25703         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
25704         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
25705
25706         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
25707         deal with problem of inefficient slices on machines with strict
25708         alignment, when the slice is a component of a composite.
25709
25710         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
25711         machines, we need the check there as well.
25712
25713 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
25714
25715         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
25716         determine safe copying direction for overlapping slice assignments
25717         when component is controlled.
25718
25719         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
25720         formal derived type in the actual for a formal package are visible in
25721         the enclosing instance.
25722
25723 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
25724
25725         PR ada/15600
25726         * sem_util.adb (Trace_Components): Diagnose properly an illegal
25727         circularity involving a private type whose completion includes a
25728         self-referential component.
25729         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
25730         renaming or an instantiation from an implicit derived operation.
25731
25732 2004-06-28  Pascal Obry  <obry@gnat.com>
25733
25734         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
25735         DLL.
25736         (Library_File_Name_For): Idem.
25737
25738 2004-06-28  Matthew Gingell  <gingell@gnat.com>
25739
25740         * g-traceb.ads: Add explanatory note on the format of addresses
25741         expected by addr2line.
25742
25743 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
25744
25745         * Makefile.in: Force debugging information on s-tasdeb.adb,
25746         a-except.adb and s-assert.adb needed by the debugger.
25747
25748 2004-06-28  Vincent Celier  <celier@gnat.com>
25749
25750         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
25751         Need_To_Build_Lib.
25752         (Gnatmake): Ditto.
25753
25754         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
25755
25756         * prj.adb: Minor reformatting
25757         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
25758
25759         * prj.ads: Comment updates
25760         Minor reformatting
25761         (Project_Data): Change Flag1 to Need_To_Build_Lib.
25762         Remove Flag2: not used.
25763
25764         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
25765         declaration.
25766
25767         * gnat_ugn.texi: Put a "null;" declaration in one project file example
25768
25769         * gnat_rm.texi: Document Empty declarations "null;".
25770
25771         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
25772         front of the linker options.
25773         (Link_Foreign): Put the global archives and the libraries in front of
25774         the linker options.
25775
25776 2004-06-28  Javier Miranda  <miranda@gnat.com>
25777
25778         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
25779         (RTU_Loaded): Code cleanup
25780         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
25781         withed predefined units.
25782
25783         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
25784         explicitly withed predefined units.
25785         Fix typo in comment
25786
25787         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
25788         explicitly withed predefined units.
25789
25790 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25791
25792         * ada-tree.def (DECL_STMT): Deleted.
25793         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
25794         (DECL_STMT_VAR): Deleted.
25795         * decl.c: add_decl_stmt now add_decl_expr.
25796         * gigi.h: Likewise.
25797         * trans.c: Likewise.
25798         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
25799         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
25800         (add_stmt): Only handle padded type here.
25801         (add_stmt_with_node): Allow gnat_node to not be present.
25802         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
25803         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
25804         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
25805         make a SAVE_EXPR for the entire fat pointer.
25806         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
25807         (create_index_type): Make a DECL_EXPR.
25808         (end_subprog_body): Don't call allocate_struct_function here but
25809         do clear cfun.
25810
25811 2004-06-25  Pascal Obry  <obry@gnat.com>
25812
25813         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
25814         Relocatable from Build_Dynamic_Library call.
25815
25816         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
25817         Relocatable are now synonym.
25818
25819         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
25820
25821         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
25822         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
25823         call.
25824
25825         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
25826         Lib_Address and Relocatable.
25827         (Default_DLL_Address): Removed.
25828
25829         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
25830         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
25831         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
25832         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
25833         (Default_DLL_Address): Removed.
25834
25835         * mlib-tgt-mingw.adb: Ditto.
25836         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
25837
25838         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
25839         the initial thread stack size.
25840
25841         * a-strmap.ads: Move package L to private part as it is not used in
25842         the spec. Found while reading code.
25843
25844 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
25845
25846         * tracebak.c: Introduce support for a GCC infrastructure based
25847         implementation of __gnat_backtrace.
25848
25849         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
25850         any more. Use accessors instead. This eases maintenance and relaxes
25851         some alignment constraints.
25852         (_GNAT_Exception structure): Remove the Ada specific fields
25853         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
25854         a-exexpr.adb.
25855         (is_handled_by, __gnat_eh_personality): Replace component references to
25856         exception structure by use of the new accessors.
25857
25858         * init.c (__gnat_initialize): Adjust comments to match the just
25859         reverted meaning of the -static link-time option.
25860
25861         * adaint.c (convert_addresses): Arrange not to define a stub for
25862         mips-irix any more, as we now want to rely on a real version from a
25863         recent libaddr2line.
25864
25865         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
25866         the personality routine can use them and not have to rely on a C
25867         counterpart of the record anymore. This simplifies maintenance and
25868         relaxes the constraint of having Standard'Maximum_Alignment match
25869         BIGGEST_ALIGNMENT.
25870         Update comments, and add a section on the common header alignment issue.
25871
25872 2004-06-25  Geert Bosch  <bosch@gnat.com>
25873
25874         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
25875         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
25876
25877 2004-06-25  Robert Dewar  <dewar@gnat.com>
25878
25879         * gnat_rm.texi: Fix section on component clauses to indicate that the
25880         restriction on byte boundary placement still applies for bit packed
25881         arrays.
25882         Add comment on stack usage from Initialize_Scalars
25883
25884         * gnat_ugn.texi: Add documentation for -gnatyLnnn
25885
25886         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
25887         limiting nesting level.
25888
25889         * usage.adb: Add line for -gnatyLnnn switch
25890
25891         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
25892         sem_ch13.adb, exp_aggr.adb: Minor reformatting
25893
25894         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
25895         type as well as on the subtype. This corrects a problem in freeze in
25896         setting alignments of atomic types.
25897
25898         * sem_eval.ads: Minor comment typo fixed
25899
25900         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
25901         level.  Minor reformatting.
25902
25903         * fname.adb (Is_Predefined_File_Name): Require a letter after the
25904         minus sign. This means that file names like a--b.adb will not be
25905         considered predefined.
25906
25907         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
25908         record Test new flag and give diagnostic for bad component clause.
25909         (Freeze_Entity): Set alignment of array from component alignment in
25910         cases where this is safe to do.
25911
25912         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
25913         arrays.
25914
25915         * cstand.adb: (Create_Standard): Set alignment of String to 1
25916
25917         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
25918
25919         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
25920         code in the common constrained array cases.
25921
25922         * a-storio.adb: Change implementation to avoid possible alignment
25923         problems on machines requiring strict alignment (data should be moved
25924         as type Buffer, not type Elmt).
25925
25926         * checks.adb (Apply_Array_Size_Check): Improve these checks by
25927         killing the overflow checks which we really do not need (64-bits is
25928         enough).
25929
25930 2004-06-25  Vincent Celier  <celier@gnat.com>
25931
25932         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
25933         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
25934         inconditionally for the main project.
25935         (Recursive_Add_Archives.Add_Archive_Path): New procedure
25936         (Link_Executables.Check_Time_Stamps): New procedure
25937         (Link_Executables.Link_Foreign): New procedure
25938         Changes made to reduce nesting level of this package
25939         (Check): New procedure
25940         (Add_Switches): When not in quiet output, check that a switch is not
25941         the concatenation of several valid switches. If it is, issue a warning.
25942         (Build_Global_Archive): If the global archive is rebuilt, linking need
25943         to be done.
25944         (Compile_Sources): Rebuilding a library archive does not imply
25945         rebuilding the global archive.
25946         (Build_Global_Archive): New procedure
25947         (Build_Library): New name for Build_Archive, now only for library
25948         project
25949         (Check_Archive_Builder): New procedure
25950         (Create_Global_Archive_Dependency_File): New procedure
25951         (Gprmake): Call Build_Global_Archive before linking
25952         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
25953         throughout.
25954         (Scan_Arg): Display the Copyright notice when -v is used
25955
25956         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
25957         for gnatls.
25958
25959         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
25960         COMPILE.
25961         Add new GNAT LIST qualifier /FILES=
25962         Added qualifier /DIRECTORY= to GNAT METRIC
25963         Added qualifier /FILES= to GNAT METRIC
25964         Added qualifier /FILES to GNAT PRETTY
25965
25966         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
25967         to take into account both versions of the switch.
25968
25969         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
25970         always be the last switch to the gcc driver. Disable switch storing so
25971         that switches automatically added by the gcc driver are not put in the
25972         ALI file.
25973
25974         * prj.adb (Project_Empty): Take into account changes in components of
25975         Project_Data.
25976
25977         * prj.ads (Languages_Processed): New enumaration value All_Languages.
25978
25979         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
25980         used. Split Boolean component Ada_Sources_Present in two Boolean
25981         components Ada_Sources_Present and Other_Sources_Present.
25982         Minor reformatting
25983
25984         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
25985         instead of Sources_Present.
25986         (Set_Ada_Paths.Add.Recursive_Add): Ditto
25987
25988         * prj-nmsc.adb: Minor reformatting
25989         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
25990         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
25991         Check_Ada_Naming_Scheme.
25992         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
25993         throughout.
25994
25995         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
25996         In_Limited.
25997         Make sure that all cycles where there is at least one "limited with"
25998         are detected.
25999         (Parse_Single_Project): New Boolean parameter In_Limited
26000
26001         * prj-proc.adb (Recursive_Check): When Process_Languages is
26002         All_Languages, call first Prj.Nmsc.Ada_Check, then
26003         Prj.Nmsc.Other_Languages_Check.
26004
26005         * prj-proc.adb (Process): Use Ada_Sources_Present or
26006         Other_Sources_Present (instead of Sources_Present) depending on
26007         Process_Languages.
26008
26009         * lang-specs.h: Keep -g and -m switches in the same order, and as the
26010         last switches.
26011
26012         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
26013         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
26014         False.
26015         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
26016         False.
26017
26018         * lib.ads (Disable_Switch_Storing): New procedure.
26019
26020         * make.adb: Modifications to reduce nesting level of this package.
26021         (Check_Standard_Library): New procedure
26022         (Gnatmake.Check_Mains): New procedure
26023         (Gnatmake.Create_Binder_Mapping_File): New procedure
26024         (Compile_Sources.Compile): Add switch -gnatez as the last option
26025         (Display): Never display -gnatez
26026
26027         * Makefile.generic:
26028         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
26029
26030         * gnatcmd.adb (Check_Project): New function
26031         (Process_Link): New procedure to reduce nesting depth
26032         (Check_Files): New procedure to reduce the nesting depth.
26033         For GNAT METRIC, include the inherited sources in extending projects.
26034         (GNATCmd): When GNAT LS is invoked with a project file and no files,
26035         add the list of files from the sources of the project file. If this list
26036         is too long, put it in a temp text files and use switch -files=
26037         (Delete_Temp_Config_Files): Delete the temp text file that contains
26038         a list of source for gnatpp or gnatmetric, if one has been created.
26039         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
26040         in the project file is too large, create a temporary text file that
26041         list them and pass it to the tool with "-files=<temp text file>".
26042         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
26043
26044         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
26045         generated file is in not in Ada.
26046
26047         * gnatls.adb: Remove all parameters And_Save that are no longer used.
26048         (Scan_Ls_Arg): Add processing for -files=
26049         (Usage): Add line for -files=
26050
26051         * g-os_lib.adb (On_Windows): New global constant Boolean flag
26052         (Normalize_Pathname): When on Windows and the path starts with a
26053         directory separator, make sure that the resulting path will start with
26054         a drive letter.
26055
26056         * clean.adb (Clean_Archive): New procedure
26057         (Clean_Project): When there is non-Ada code, delete the global archive,
26058         the archive dependency files, the object files and their dependency
26059         files, if they exist.
26060         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
26061
26062 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
26063
26064         * sinfo.ads: Fix typo in comment.
26065
26066         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
26067         the TSS for remote access-to-subprogram types, since these TSS are
26068         always present once the type has been analyzed.
26069         (RAS_E_Dereference): Same.
26070
26071         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
26072         reference raises Bad_Attribute, mark the reference as analyzed so the
26073         node (and any children resulting from rewrites that could have occurred
26074         during the analysis that ultimately failed) is not analyzed again.
26075
26076         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
26077
26078         * exp_dist.adb: Minor comment fix.
26079
26080         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
26081         type is an anonymous access type, no unchecked deallocation of the
26082         allocated object can occur. If the object is controlled, attach it with
26083         a count of 1. This allows attachment to the Global_Final_List, if
26084         no other relevant list is available.
26085         (Get_Allocator_Final_List): For an anonymous access type that is
26086         the type of a discriminant or record component, the corresponding
26087         finalisation list is the one of the scope of the type.
26088
26089 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
26090
26091         * sem_ch3.adb (Replace_Type): When computing the signature of an
26092         inherited subprogram, use the first subtype if the derived type
26093         declaration has no constraint.
26094
26095         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
26096         before applying previous optimization. Minor code cleanup.
26097
26098         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
26099         placed at the beginning of an unpacked record without explicit
26100         alignment, a slice of it will be aligned and does not need a copy when
26101         used as an actual.
26102
26103 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
26104
26105         PR ada/15591
26106         PR ada/15592
26107         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
26108         reference is written with expressions mimicking parameters.
26109
26110 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
26111
26112         PR ada/15589
26113         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
26114         STEP 2a. The constraints of a full type declaration of a derived record
26115         type are checked for conformance with those declared in the
26116         corresponding private extension declaration. The message
26117         "not conformant with previous declaration" is emitted if an error is
26118         detected.
26119
26120 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
26121
26122         * g-traceb.ads: Document the need for -E binder switch in the spec.
26123
26124         * g-trasym.ads: Document the need for -E binder switch in the spec.
26125
26126 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
26127
26128         * sem_prag.adb: Add handling of pragma Detect_Blocking.
26129
26130         * snames.h, snames.ads, snames.adb: Add entry for pragma
26131         Detect_Blocking.
26132
26133         * s-rident.ads: Change reference to pragma Detect_Blocking.
26134
26135         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
26136         system.ads.
26137
26138         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
26139         to indicate whether pragma Detect_Blocking is active.
26140
26141         * par-prag.adb: Add entry for pragma Detect_Blocking.
26142
26143         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
26144         of not handling WITH.
26145         Note that this replaces the previous update which was incorrect.
26146
26147 2004-06-25  Javier Miranda  <miranda@gnat.com>
26148
26149         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
26150         use-clauses to have a clean environment.
26151
26152         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
26153         the installation of the use-clauses to stablish a clean environment in
26154         case of compilation of a separate unit; otherwise the call to
26155         use_one_package is protected by the barrier Applicable_Use.
26156
26157         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
26158         the installation of the use-clauses to stablish a clean environment in
26159         case of compilation of a separate unit.
26160         (End_Use_Clauses): Minor comment cleanup.
26161
26162 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
26163
26164         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
26165
26166 2004-06-23  Richard Henderson  <rth@redhat.com>
26167
26168         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
26169
26170 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26171
26172         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
26173         now bool instead of int.
26174         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
26175         * trans.c (gnu_switch_label_stack): New function.
26176         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
26177         elaboration of renamed entity returns.
26178         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
26179         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
26180         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
26181         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
26182         DECL_SIZE_UNIT and simplify variable-sized case.
26183         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
26184         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
26185         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
26186         (build_unit_elab): Disable for now.
26187         * utils.c (mark_visited): New function.
26188         (pushdecl): Walk tree to call it for global decl.
26189         (update_pointer_to): Update all variants of pointer and ref types.
26190         Add arg to COMPONENT_REF.
26191         (convert): Likewise.
26192         Move check for converting between variants lower down.
26193         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
26194         (build_allocator): Don't force type of MODIFY_EXPR.
26195         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
26196         put_var_into_stack.
26197
26198 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26199
26200         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
26201         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
26202         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
26203         subprograms.
26204         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
26205         all callers changed.
26206         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
26207         the way that EXIT_STMT finds the loop label.
26208         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
26209         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
26210         (add_stmt): Use annotate_with_locus insted of setting directly.
26211         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
26212         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
26213         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
26214         (build_vms_descriptor): Add extra args to ARRAY_REF.
26215         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
26216         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
26217         New cases.
26218         (build_binary_op): Don't make explicit CONVERT_EXPR.
26219         Add extra rgs to ARRAY_REF.
26220
26221 2004-06-14  Pascal Obry  <obry@gnat.com>
26222
26223         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
26224         Windows.  Fix minor typo.
26225
26226         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
26227         which is now supported on Windows. With this implementation using the
26228         Library Project feature is no different on Windows than on UNIX.
26229
26230 2004-06-14  Vincent Celier  <celier@gnat.com>
26231
26232         * makegpr.adb (Compile_Sources): Nothing to do when there are no
26233         non-Ada sources.
26234
26235         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
26236
26237         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
26238         found, show the project name and the path of the previously parsed
26239         project file.
26240
26241 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
26242
26243         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
26244         array, avoid copying the actual before the call.
26245
26246 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
26247
26248         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
26249         Instead, allocate memory on worst-case alignment assumptions, and then
26250         return an aligned address within the allocated zone.
26251
26252 2004-06-14  Robert Dewar  <dewar@gnat.com>
26253
26254         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
26255         elab entities in predefined units in No_Run_Time_Mode.
26256         (Gen_Adainit_C): Same fix
26257         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
26258         units in No_Run_Time_Mode
26259         (Gen_Elab_Calls_C): Same fix
26260
26261         * symbols-vms-alpha.adb: Minor reformatting
26262
26263         * g-debpoo.ads: Minor reformatting
26264
26265         * lib.adb (In_Same_Extended_Unit): Version working on node id's
26266
26267         * lib.ads (In_Same_Extended_Unit): Version working on node id's
26268
26269         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
26270         working on nodes.
26271
26272         * make.adb: Minor reformatting
26273
26274         * par-ch12.adb: Minor reformatting
26275
26276         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
26277
26278         * prj-strt.adb: Minor reformatting
26279
26280         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
26281         be more general.
26282
26283         * sem_attr.adb: Minor reformatting
26284
26285         * sem_ch7.adb: Minor reformatting
26286
26287         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
26288         for type in the same unit as the object declaration.
26289
26290         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
26291         static string expressions and not just string literals.
26292         Minor reformatting
26293         (Set_Warning): Reset restriction warning flag for restriction pragma
26294         Implement pragma Profile_Warnings
26295         Implement pragma Profile (Restricted)
26296         Give obolescent messages for old restrictions and pragmas
26297
26298         * snames.h, snames.ads, snames.adb: Add new entry for pragma
26299         Profile_Warnings.
26300
26301         * s-rident.ads: Add declarations for restrictions required by profile
26302         Restricted and profile Ravenscar.
26303
26304         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
26305
26306         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
26307         configuration pragmas.
26308
26309 2004-06-11  Vincent Celier  <celier@gnat.com>
26310
26311         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
26312         gnatsym, when symbol policy is Restricted.
26313
26314         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
26315         gnatsym, when symbol policy is Restricted.
26316
26317         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
26318         read the symbol file.
26319         (Finalize): Fail in symbol policy Restricted if a symbol in the original
26320         symbol file is not in the object files. Do not create a new symbol file
26321         when symbol policy is Restricted.
26322
26323         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
26324         in Scng.
26325
26326         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
26327         Restricted.
26328         (Usage): Line for new switch -R
26329
26330         * make.adb (Initialize): When the platform is not VMS, add the
26331         directory where gnatmake is invoked in the front of the path, if
26332         gnatmake is invoked with directory information.  Change the Scan_Args
26333         while loop to a for loop.
26334         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
26335         if Depth is equal or greater than the proposed depth, there is nothing
26336         to do.
26337         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
26338         instead of 0.
26339
26340         * prj.ads: Add new symbol policy Restricted.
26341
26342         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
26343         with the new parameters Check_All_Labels and Case_Location.
26344
26345         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
26346         (Library_Symbol_File needs to be defined).
26347
26348         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
26349         and Case_Location If Check_All_Labels is True, check that all values of
26350         the string type are used, and output warning(s) if they are not.
26351
26352         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
26353         and Case_Location.
26354
26355         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
26356
26357         * gnat_ugn.texi: Update documentation about the library directory in
26358         Library Projects.
26359
26360         * makegpr.adb (Display_Command): In verbose mode, also display the
26361         value of the CPATH env var, when the compiler is gcc.
26362         (Initialize): Change the Scan_Args while loop to a for loop
26363         (Compile_Individual_Sources): Change directory to object directory
26364         before compilations.
26365
26366         * symbols.ads: New symbol policy Restricted.
26367
26368 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
26369
26370         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
26371         is now taken care of internally in the Exception_Propagation package
26372         and does not require clients assistance any more.
26373
26374         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
26375         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
26376         functions. Helpers to maintain a predicate required in the handling of
26377         occurrence transfer between tasks.
26378         This is now handled internally and does not require clients assistance
26379         for the setup/propagate separation anymore.
26380         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
26381         allocation strategy, handle the Setup_And_Not_Propagated predicate and
26382         document.
26383
26384         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
26385         raise_after_setup, now that everything is handled internally within the
26386         setup/propagation engine.
26387
26388 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
26389
26390         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
26391         Add additional conditions for the case of an actual being a simple
26392         name or literal. Improve inlining by preventing the generation
26393         of temporaries with a short lifetime (one use).
26394
26395 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
26396
26397         PR ada/15587
26398         * einfo.ads: Minor comment updates for Has_Completion and
26399         E_Constant list of flags.
26400
26401         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
26402         and constant redeclarations now set the Has_Completion flag of their
26403         defining identifiers.
26404
26405         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
26406         Inspect_Deferred_Constant_Completion.
26407         Used to detect private deferred constants that have not been completed
26408         either by a constant redeclaration or pragma Import. Emits error message
26409         "constant declaration requires initialization expression".
26410
26411         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
26412         completes a deferred constant.
26413
26414 2004-06-11  Geert Bosch  <bosch@gnat.com>
26415
26416         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
26417
26418         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
26419         calculating exponent for scaling denormal numbers.
26420         (Leading_Part): Properly raise Constraint_Error for zero or negative
26421         Adjustment.
26422         (Remainder): Properly raise Constraint_Error for zero divisor.
26423
26424 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
26425
26426         * sem_util.adb: Minor reformatting.
26427
26428         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
26429         dereference when accessing the entry parameter record.
26430         (Check_Array_Type): Always check for possible implicit dereference.
26431         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
26432         Abort if a pointer is still present (denoting that an implicit
26433         dereference was left in the tree by the front-end).
26434
26435         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
26436         dereference when accessing the entry parameter record.
26437         (Check_Array_Type): Always check for possible implicit dereference.
26438         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
26439         Abort if a pointer is still present (denoting that an implicit
26440         dereference was left in the tree by the front-end).
26441
26442 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
26443
26444         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
26445         message, like the compiler itself does. Easier to parse the output.
26446
26447         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
26448
26449         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
26450         be base names, and not includes directories.
26451
26452 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
26453
26454         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
26455         so that dependencies are properly taken into account by make.
26456
26457 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
26458
26459         PR ada/15622
26460         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
26461         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
26462
26463 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
26464
26465         * Makefile.in (install-gnatlib): install target-specific run-time files.
26466
26467         * Make-lang.in: Remove obsolete targets.
26468
26469 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
26470
26471         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
26472         specification, to catch misuses of program unit names.
26473
26474         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
26475         superfluous conversions in an instance.
26476
26477 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
26478
26479         PR ada/15403
26480         * sem_ch12.adb (Save_References): If operator node has been folded to
26481         enumeration literal, associated_node must be discarded.
26482
26483 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
26484
26485         * s-stchop-vxworks.adb: Add required pragma Convention to
26486         Task_Descriptor because it is updated by a C function.
26487
26488 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
26489
26490         PR ada/15568
26491         * Makefile.in: Remove target specific SO_OPT on IRIX
26492
26493 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26494
26495         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
26496         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
26497         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
26498         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
26499         (STMT_STMT, USE_STMT): New statement codes.
26500         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
26501         * ada-tree.h: Reflect above changes.
26502         (struct tree_loop_id): Deleted.
26503         (union lang_tree_node, struct lang_decl, struct lang_type):
26504         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
26505         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
26506         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
26507         (IS_ADA_STMT): New macro.
26508         * decl.c (annotate_decl_with_node): New function.
26509         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
26510         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
26511         Call add_stmt_with_node to do needed assignments.
26512         Add call to update setjmp buffer directly, not via EXPR_STMT.
26513         (maybe_variable): Argment GNAT_NODE deleted.
26514         * gigi.h (maybe_variable): Likewise.
26515         (make_transform, add_stmt_with_node, set_block_for_group): New.
26516         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
26517         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
26518         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
26519         (set_lineno, set_lineno_from_sloc): Likewise.
26520         (record_code_position, insert_code_for): Likewise.
26521         (gnat_poplevel): Now returns void.
26522         (end_subprog_body): Now takes argument.
26523         * misc.c (cgraph.h, tree-inline.h): New includes.
26524         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
26525         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
26526         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
26527         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
26528         (gnat_parse_file): Don't set immediate_size_expand.
26529         Call cgraph functions.
26530         (gnat_expand_expr): Remove most cases.
26531         (record_code_position, insert_code_for): Remove from here.
26532         * trans.c (toplev.h, tree-gimple.h): Now included.
26533         (discard_file_names): Deleted.
26534         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
26535         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
26536         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
26537         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
26538         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
26539         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
26540         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
26541         (set_block_for_group, add_stmt_list): Likewise.
26542         (start_stmt_group): Renamed from start_block_stmt.
26543         (end_stmt_group): Likewise, from end_block_stmt.
26544         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
26545         (gigi): Don't set discard_file_names or call set_lineno.
26546         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
26547         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
26548         Numerous changes throughout to reflect new names and complete
26549         function-at-a-time implementation.
26550         (gnat_expand_stmt): Delete or comment out all cases.
26551         (process_inlined_subprograms): Use add_stmt.
26552         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
26553         call set_lineno; also remove unneeded block handling.
26554         (process_type): Remove unneeded block handling.
26555         (build_unit_elab): Remove calls to deleted functions.
26556         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
26557         (tree-dump.h): Likewise.
26558         (struct ada_binding_level): Add field jmpbuf_decl.
26559         (gnat_define_builtin, gnat_install_builtins): New.
26560         (gnat_gimplify_function, gnat_finalize): Likewise.
26561         (gnat_poplevel): No longer return BLOCK, set it instead.
26562         Remove code dealing with nested functions.
26563         (gnat_init_decl_processing): Also set size_type_node.
26564         Call gnat_install_builtins.
26565         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
26566         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
26567         Remove special-case for "main".
26568         (end_subprog_body): Add arg and rework for tree-ssa.
26569         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
26570         Add case for BOOLEAN_TYPE.
26571         * utils2.c (rtl.h): Now include.
26572         (build_call_raise): Test Debug_Flag_NN directly.
26573         (build_call_alloc_dealloc): Don't use local stack allocation for now.
26574         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
26575         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
26576
26577 2004-06-07  Robert Dewar  <dewar@gnat.com>
26578
26579         * a-direct.ads, einfo.ads: Minor comment updates
26580
26581         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
26582         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
26583         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
26584         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
26585         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
26586
26587         * s-interr-sigaction.adb: Remove unreferenced variable
26588         (Attached_Interrupts).  Minor reformatting.
26589         Avoid use of variable I (replace by J).
26590
26591         * par-ch10.adb: Fix text of one error message
26592
26593         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
26594         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
26595         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
26596         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
26597         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
26598         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
26599         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
26600         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
26601         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
26602         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
26603         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
26604         2005 support.
26605
26606 2004-06-07  Doug Rupp  <rupp@gnat.com>
26607
26608         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
26609
26610         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
26611
26612         * mlib-tgt-vms-ia64.adb: New file.
26613
26614         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
26615         Add mlib-tgt-vms-ia64.adb
26616         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
26617         Move to alpha specific ifeq section.
26618         Add VMS specific versions of symbols.adb
26619         Renaming of 5q vms files.
26620
26621         * 5qsystem.ads renamed to system-vms_64.ads.
26622
26623 2004-06-07  Vincent Celier  <celier@gnat.com>
26624
26625         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
26626         explain that when a time of day corresponding to the non existing hour
26627         on the day switching to DST is specified, Split may return a different
26628         value for Seconds.
26629
26630         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
26631         to GNAT PRETTY.
26632
26633         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
26634         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
26635
26636         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
26637         to False.
26638         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
26639         the linking options.
26640         (Build_Library.Check_Libs): On VMS, if there is a dependency on
26641         g-trasym.ads, set Gtrasymobj_Needed to True.
26642
26643         * prj-attr.adb: Add new package Metrics for gnatmetric
26644
26645         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
26646         canonical case to take into account files with upper case characters on
26647         Windows.
26648         (Ada_Check): Load the reference symbol file name in the name buffer to
26649         check it, not the symbol file name.
26650
26651         * snames.ads, snames.adb: Add standard name Metrics (name of project
26652         file package for gnatmetric).
26653
26654         * vms_conv.ads: Add Metric to Comment_Type
26655
26656         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
26657
26658         * vms_data.ads: Add qualifiers for GNAT METRIC
26659
26660         * makegpr.adb (Link_Executables): Take into account the switches
26661         specified in package Linker of the main project.
26662
26663 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
26664
26665         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
26666         the index of the last element is Units.Last, not Units.Table'Last
26667         (which is usually not a valid index within the actually allocated
26668         storage for the table).
26669
26670         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
26671         determines whether to generate a call to a checked storage pool
26672         Dereference action.
26673         Generate such a call only for a dereference that either comes from
26674         source, or is the result of rewriting a dereference that comes from
26675         source.
26676
26677 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
26678
26679         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
26680
26681 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
26682
26683         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
26684         file level, elaborate the stride for inner dimensions in alignment
26685         units, not bytes.
26686
26687         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
26688         in a comment.
26689
26690 2004-06-07  Javier Miranda  <miranda@gnat.com>
26691
26692         * exp_ch6.adb: Correct wrong modification in previous patch
26693
26694 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
26695
26696         * g-trasym.ads: Corrected comment to properly reflect level of support
26697         on VMS.
26698
26699 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
26700
26701         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
26702         includes case of a variable referenced on the left hand side of an
26703         assignment, therefore remove redundant code. Variables and prefixes of
26704         indexed or selected components are now marked as referenced on left
26705         hand side. Warnings are now properly emitted when variables or prefixes
26706         are assigned but not read.
26707
26708         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
26709         left hand side referenced variables. Private access types do not
26710         produce the warning "variable ... is assigned but never read".
26711         Add also additional checks to left hand side referenced variables.
26712         Aliased, renamed objects and access types do not produce the warning
26713         "variable ... is assigned but never read" since other entities may read
26714         the memory location.
26715
26716 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
26717
26718         * Makefile.in: In the powerpc/vxworks-specific section, restore
26719         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
26720         by mistake).
26721
26722 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
26723
26724         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
26725         predefined operators.
26726         Removes spurious type errors from g-trasym-vms.adb.
26727
26728         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
26729         distinct from the operator appearing in the source, call appropriate
26730         routine to insert conversions when needed, and complete resolution of
26731         node.
26732         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
26733         interpretations for rewritten right operand.
26734         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
26735         the other operand is overloaded and the context is a type conversion.
26736
26737 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26738
26739         * ada-tree.def (BLOCK_STMT): Now has two operands.
26740         (BREAK_STMT): New.
26741
26742         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
26743
26744         * gigi.h: (gnat_poplevel): Now returns a tree.
26745
26746         * trans.c (end_block_stmt): Add arg; all callers changed.
26747         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
26748         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
26749         (add_stmt): Set TREE_TYPE.
26750         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
26751         (gnat_expand_stmt, case BREAK_STMT): New case.
26752
26753         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
26754
26755 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
26756
26757         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
26758         procedure Set_Stack_Size that is not needed.
26759
26760 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
26761
26762         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
26763         used for gnatpp input file and for the files upon which it depends
26764
26765 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
26766
26767         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
26768
26769 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
26770
26771         * gnatvsn.ads: Bump version numbers appropriately.
26772         Add new build type.
26773
26774 2004-06-07  Pascal Obry  <obry@gnat.com>
26775
26776         * gnat_ugn.texi: Improve comments about imported names and link names
26777         on Windows. Add a note about the requirement to use -k gnatdll's option
26778         when working with a DLL which has stripped stdcall symbols (no @nn
26779         suffix).
26780
26781 2004-05-27  Vincent Celier  <celier@gnat.com>
26782
26783         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
26784         COMMENTS_LAYOUT=UNTOUCHED
26785
26786         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
26787         symbols-vms-alpha.adb
26788
26789 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
26790
26791         * sem.ads: Clarify documentation on checks suppression.
26792
26793         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
26794
26795 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
26796
26797         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
26798         the case of multiple derivations.
26799         (Is_Object_Reference): For a selected component, verify that the prefix
26800         is itself an object and not a value.
26801
26802         * sem_ch12.adb (Same_Instantiated_Constant): New name for
26803         Same_Instantiated_Entity.
26804         (Same_Instantiated_Variable): Subsidiary to
26805         Check_Formal_Package_Instance, to recognize actuals for in-out generic
26806         formals that are obtained from a previous formal package.
26807         (Instantiate_Subprogram_Body): Emit proper error when
26808         generating code and the proper body of a stub is missing.
26809
26810         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
26811         has a universal interpretation, do the disambiguation here.
26812
26813         * exp_ch4.adb (Expand_N_Type_Conversion,
26814         Expand_N_Unchecked_Type_Conversion): Special handling when target type
26815         is Address, to avoid typing anomalies when Address is a visible integer
26816         type.
26817
26818         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
26819         to determine whether a subprogram should not be marked Pure, even when
26820         declared in a pure package.
26821
26822 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
26823
26824         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
26825
26826         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
26827         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
26828         Update the documentation about the Ravenscar profile, following the
26829         definition found in AI-249.
26830
26831         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
26832         setting the Profile (Ravenscar). This must be done in addition to
26833         setting the required restrictions.
26834
26835         * rtsfind.ads: Add the set of operations defined in package
26836         Ada.Interrupts.
26837
26838         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
26839         restriction.
26840
26841 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
26842
26843         lang-specs.h: Always require -c or -S and always redirect to /dev/null
26844         if -gnatc or -gnats is passed.
26845
26846 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
26847
26848         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
26849         a significant reference. Warnings are now properly emitted when a
26850         discriminated type is not referenced.
26851
26852         * lib-xref.adb (Generate_Reference): A deferred constant completion,
26853         record representation clause or record type discriminant does not
26854         produce a reference to its corresponding entity. Warnings are now
26855         properly emitted when deferred constants and record types are not
26856         referenced.
26857
26858 2004-05-27  Geert Bosch  <bosch@gnat.com>
26859
26860         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
26861         Fixes ACATS Annex G tests.
26862
26863 2004-05-27  Robert Dewar  <dewar@gnat.com>
26864
26865         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
26866         handling WITH
26867
26868 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
26869
26870         * s-interr.adb (Server_Task): Take into account case of early return
26871         from sigwait under e.g. linux.
26872
26873 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
26874
26875         * gnat_ugn.texi: Add description for the new gnatpp options:
26876          -rnb - replace the original source without creating its backup copy
26877          -c0 - do not format comments
26878
26879 2004-05-24  Geert Bosch  <bosch@gnat.com>
26880
26881         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
26882         with 192 bits of precision, sufficient to reduce a double-extended
26883         arguments X with a maximum relative error of T'Machine_Epsilon, for X
26884         in -2.0**32 .. 2.0**32.
26885         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
26886         reduction by the processor, which only uses a 68-bit approximation of
26887         Pi.
26888         (Tan): Always reduce arguments and compute function either using
26889         the processor's fptan instruction, or by dividing sin and cos as needed.
26890
26891 2004-05-24  Doug Rupp  <rupp@gnat.com>
26892
26893         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
26894         gcc error on 32/64 bit VMS.
26895
26896 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
26897
26898         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
26899         since this is what we get for stack overflows although not documented
26900         as such.
26901         Document the issues which may require adjustments to our signal
26902         handlers.
26903
26904 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
26905
26906         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
26907         enclosing dynamic scope if the instantiation is within a generic unit.
26908
26909 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
26910
26911         * exp_dbug.ads: Fix typo.
26912
26913         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
26914         Rename it to its proper name: system-linux-ia64.ads
26915         (stamp-gnatlib1): Remove extra target specific run time files when
26916         setting up the rts directory.
26917
26918 2004-05-24  Javier Miranda  <miranda@gnat.com>
26919
26920         * einfo.ads, einfo.adb (Limited_Views): Removed.
26921         (Limited_View): New attribute that replaces the previous one. It is
26922         now a bona fide package with the limited-view list through the
26923         first_entity and first_private attributes.
26924
26925         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
26926         limited-private-with clause.
26927         (Install_Limited_Withed_Unit): Install the private declarations of a
26928         limited-private-withed package. Update the installation of the shadow
26929         entities according to the new structure (see Build_Limited_Views)
26930         (Build_Limited_Views): Replace the previous implementation of the
26931         limited view by a package entity that references the first shadow
26932         entity plus the first shadow private entity (required for limited-
26933         private-with clause)
26934         (New_Internal_Shadow_Entity): Code cleanup.
26935         (Remove_Limited_With_Clause): Update the implementation to undo the
26936         new work carried out by Build_Limited_Views.
26937         (Build_Chain): Complete documentation.
26938         Replace Ada0Y by Ada 0Y in comments
26939         Minor reformating
26940
26941         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
26942         types the level of accessibility depends on the enclosing type
26943         declaration.
26944
26945         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
26946         entities. Complete documentation of previous change.
26947
26948 2004-05-24  Robert Dewar  <dewar@gnat.com>
26949
26950         * namet.adb: Minor reformatting
26951         Avoid use of name I (replace by J)
26952         Minor code restructuring
26953
26954         * sem_ch6.adb: Minor reformatting
26955
26956         * lib-writ.adb: Do not set restriction as active if this is a
26957         Restriction_Warning case.
26958
26959         * sem_prag.adb: Reset restriction warning flag if real pragma
26960         restriction encountered.
26961
26962         * s-htable.adb: Minor reformatting
26963         Change rotate count to 3 in Hash (improves hash for small strings)
26964
26965         * 5qsystem.ads: Add comments for type Address (no literals allowed).
26966
26967         * gnat_ugn.texi: Add new section of documentation "Code Generation
26968         Control", which describes the use of -m switches.
26969
26970 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
26971
26972         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
26973         through the DECL_INITIAL for renamed variables.
26974
26975 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
26976
26977         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
26978
26979 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
26980
26981         * exp_dbug.ads: Correct comments concerning handling of overloading,
26982         since we no longer use $ anymore.
26983
26984 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
26985
26986         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
26987         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
26988         with illegal subunits.
26989
26990 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
26991
26992         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
26993         body with front-end inlining enabled, check whether an inline pragma
26994         appears immediately after the body and applies to it.
26995
26996         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
26997         enabled and the pragma appears after the body of the subprogram.
26998
26999 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27000
27001         Part of function-at-a-time conversion
27002
27003         * misc.c (adjust_decl_rtl): Deleted.
27004         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
27005         Define.
27006
27007         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
27008         (add_decl_stmt, add_stmt, block_has_vars): New functions.
27009         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
27010
27011         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
27012         when making a decl.
27013         (gnat_to_gnu_entity): Likewise.
27014         Use add_stmt to update setjmp buffer.
27015         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
27016         flush_addressof.
27017         No longer call adjust_decl_rtl.
27018         (DECL_INIT_BY_ASSIGN_P): New macro.
27019         (DECL_STMT_VAR): Likewise.
27020
27021         * trans.c (gigi): Call start_block_stmt to make the outermost
27022         BLOCK_STMT.
27023         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
27024         Call start_block_stmt and end_block_stmt temporarily.
27025         Use gnat_expand_stmt instead of expand_expr_stmt.
27026         (add_decl_stmt): New function.
27027         (tree_transform): Call it.
27028         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
27029         (end_block_stmt): Set type and NULL_STMT.
27030         (gnat_expand_stmt): Make recursize call instead of calling
27031         expand_expr_stmt.
27032         (gnat_expand_stmt, case DECL_STMT): New case.
27033         (set_lineno_from_sloc): Do nothing if global.
27034         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
27035         (start_block_stmt, add_stmt, end_block_stmt): New functions.
27036         (build_block_stmt): Call them.
27037         (gnat_to_code): Don't expand NULL_STMT.
27038         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
27039         args.
27040         (tree_transform): Likewise.
27041         (tree_transform, case N_Null_Statement): Return NULL_STMT.
27042         (gnat_expand_stmt, case NULL_STMT): New case.
27043         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
27044         IF_STMT_TRUE.
27045
27046         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
27047         TREE_ADDRESSABLE.
27048
27049         * utils.c (create_var_decl): Do not call expand_decl or
27050         expand_decl_init.
27051         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
27052         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
27053         here.
27054         (struct e_stack): Add chain_next to GTY.
27055         (struct binding_level): Deleted.
27056         (struct ada_binding_level): New struct.
27057         (free_block_chain): New.
27058         (global_binding_level, clear_binding_level): Deleted.
27059         (global_bindings_p): Rework to see if no chain.
27060         (kept_level_p, set_block): Deleted.
27061         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
27062         new data structure and work directly on BLOCK node.
27063         (gnat_poplevel): Similarly.
27064         (get_decls): Look at BLOCK_VARS.
27065         (insert_block): Work directly on BLOCK node.
27066         (block_has_var): New function.
27067         (pushdecl): Rework for new binding structures.
27068         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
27069         poplevel.
27070         (build_subprog_body): Likewise.
27071         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
27072
27073         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
27074
27075         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
27076         (DECL_STMT_VAR): Likewise.
27077
27078 2004-05-17  Robert Dewar  <dewar@gnat.com>
27079
27080         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
27081         procedure
27082
27083         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
27084         of restriction synonyums by using
27085         Restrict.Process_Restriction_Synonyms.
27086
27087         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
27088
27089         * s-restri.ads (Tasking_Allowed): Correct missing comment
27090
27091         * s-rident.ads: Add entries for restriction synonyms
27092
27093         * ali.adb: Fix some problems with badly formatted ALI files that can
27094         result in infinite loops.
27095
27096         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
27097         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
27098         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
27099         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
27100         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
27101         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
27102         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
27103         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
27104         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
27105         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
27106         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
27107         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
27108         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
27109         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
27110         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
27111         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
27112         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
27113         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
27114         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
27115         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
27116         to Task_Id (minor cleanup).
27117
27118 2004-05-17  Vincent Celier  <celier@gnat.com>
27119
27120         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
27121         directory separator.
27122
27123         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
27124         project being extended, if Languages is not declared in extending
27125         project.
27126
27127 2004-05-17  Javier Miranda  <miranda@gnat.com>
27128
27129         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
27130         limited view of a visible sibling.
27131
27132 2004-05-14  Robert Dewar  <dewar@gnat.com>
27133
27134         * gnat_ugn.texi: Minor change to -gnatS documentation
27135
27136         * sprint.adb: Remove some instances of Assert (False) and for this
27137         purpose replace them by output of a ??? string.
27138
27139         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
27140         Assert (False).
27141
27142         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
27143         flag processing. This was suppressing required dependencies in
27144         No_Run_Time mode and is not needed since the binder does not generate
27145         references for things in libgnat anyway.
27146
27147         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
27148         warning.
27149
27150 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
27151
27152         * gnat_ugn.texi: Document AIX-specific issue with initialization of
27153         resolver library.
27154
27155         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
27156         action for the case of an actual parameter in an init proc call.
27157
27158 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
27159
27160         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
27161         subtype, check visible entities in base type.
27162
27163         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
27164         actions if the object is a renaming.
27165
27166         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
27167         Check_Formal_Package_Instance, to determine more precisely when the
27168         formal and the actual denote the same entity.
27169
27170 2004-05-14  Javier Miranda  <miranda@gnat.com>
27171
27172         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
27173
27174         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
27175         corresponding to a private_with must be removed from visibility; it
27176         will be made visible later, just before we analyze the private part of
27177         the package.
27178         (Check_Private_Child_Unit): Allow private_with clauses in public
27179         siblings.
27180         (Install_Siblings): Make visible the private entities of private-withed
27181         siblings.
27182         (Install_Withed_Unit): Do not install the private withed unit if we
27183         are compiling a package declaration and the Private_With_OK flag was
27184         not set by the caller. These declarations will be installed later,
27185         just before we analyze the private part of the package.
27186
27187         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
27188         during the evaluation of the expression that initializes the object,
27189         decorate it with the expected type to avoid cascade errors.
27190         Code cleanup.
27191
27192         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
27193         subprogram we have to install the private_with clauses after its
27194         specification has been analyzed (as documented in AI-262.TXT).
27195
27196         * sem_ch8.adb (Has_Private_With): New function. Determines if the
27197         current compilation unit has a private with on a given entity.
27198         (Find_Direct_Name): Detect the Beaujolais problem described in
27199         AI-262.TXT
27200
27201         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
27202         provides the functionality of the function Is_Ancestor that was
27203         previously available in sem_ch10. It has been renamed to avoid
27204         overloading.
27205
27206         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
27207
27208 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27209
27210         * utils.c (build_vms_descriptor): Use SImode pointers.
27211
27212 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
27213
27214         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
27215
27216 2004-05-14  GNAT Script  <nobody@gnat.com>
27217
27218         * Make-lang.in: Makefile automatically updated
27219
27220 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
27221
27222         Renaming of target specific files for clarity
27223
27224         * Makefile.in: Rename GNAT target specific files.
27225
27226         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
27227         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
27228         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
27229         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
27230         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
27231         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
27232         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
27233         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
27234         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
27235         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
27236         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
27237         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
27238         51osinte.adb, 51osinte.ads, 51system.ads,
27239         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
27240         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
27241         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
27242         56tpopsp.adb, 57system.ads, 58system.ads,
27243         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
27244         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
27245         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
27246         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
27247         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
27248         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
27249         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
27250         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
27251         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
27252         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
27253         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
27254         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
27255         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
27256         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
27257         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
27258         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
27259         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
27260         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
27261         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
27262         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
27263         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
27264         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
27265         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
27266         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
27267         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
27268         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
27269         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
27270         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
27271         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
27272         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
27273         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
27274         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
27275         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
27276         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
27277         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
27278         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
27279         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
27280         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
27281         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
27282         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
27283
27284         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
27285         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
27286         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
27287         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
27288         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
27289         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
27290         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
27291         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
27292         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
27293         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
27294         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
27295         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
27296         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
27297         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
27298         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
27299         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
27300         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
27301         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
27302         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
27303         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
27304         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
27305         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
27306         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
27307         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
27308         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
27309         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
27310         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
27311         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
27312         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
27313         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
27314         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
27315         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
27316         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
27317         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
27318         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
27319         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
27320         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
27321         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
27322         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
27323         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
27324         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
27325         s-osinte-vms.ads, s-osinte-vxworks.adb,
27326         s-osinte-vxworks.ads, s-osprim-mingw.adb,
27327         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
27328         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
27329         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
27330         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
27331         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
27332         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
27333         s-stchop-vxworks.adb, s-taprop-dummy.adb,
27334         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
27335         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
27336         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
27337         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
27338         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
27339         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
27340         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
27341         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
27342         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
27343         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
27344         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
27345         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
27346         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
27347         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
27348         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
27349         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
27350         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
27351         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
27352         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
27353         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
27354         system-irix-o32.ads, system-linux-x86_64.ads,
27355         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
27356         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
27357         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
27358         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
27359         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
27360         system-vxworks-mips.ads, system-vxworks-ppc.ads,
27361         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
27362         above.
27363
27364 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
27365
27366         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
27367
27368 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
27369
27370         Merge from tree-ssa-20020619-branch.
27371
27372         * config-lang.in (boot_language, build_by_default): Set
27373         to no.
27374         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
27375         (max_size): Add static chain op for call_expr.
27376
27377 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
27378
27379         PR target/15331
27380         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
27381
27382 2004-05-11  Roger Sayle  <roger@eyesopen.com>
27383
27384         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
27385         COND_EXPR.
27386
27387 2004-05-10  Doug Rupp  <rupp@gnat.com>
27388
27389         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
27390         system.aux_dec.
27391
27392         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
27393
27394         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
27395
27396         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
27397         Fixes undefined symbols in IA64 gnatlib.
27398
27399         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
27400
27401         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
27402         Short_Address). This will be moved to system.auxdec.
27403
27404 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
27405
27406         * sem_util.adb: Replace test for presence of a node that is always
27407         present with a call to Discard_Node.
27408
27409         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
27410         Analyze on the library unit node after generation of distribution stub
27411         constructs.  The call was a no-op because Unit_Node has already been
27412         Analyzed, and the tree fragments for the distribution stubs are
27413         analyzed as they are inserted in Exp_Dist.
27414         Update comment regarding to distribution stubs to reflect that we
27415         do not generate stub in separate files anymore.
27416
27417         * einfo.ads: Clarify the fact that a tagged private type has the
27418         E_Record_Type_With_Private Ekind.
27419
27420         * erroutc.adb: Minor reformatting
27421
27422         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
27423         values if line length is increased using -gnatyM (noticed during code
27424         reading).
27425
27426         * eval_fat.adb: Minor reformatting
27427         Put spaces around exponentiation operator
27428
27429 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
27430
27431         PR ada/15005
27432         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
27433         has been rewritten as an explicit dereference, retrieve type of
27434         original node to check for possibly unconstrained record type.
27435
27436 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
27437
27438         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
27439         overriding, use the operation of the parent unconditionally.
27440
27441         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
27442         operation when either operand is a literal, to avoid further
27443         ambiguities.
27444
27445         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
27446         overridden by a previous explicit declaration, mark the previous entity
27447         as overriding.
27448
27449         * sem_disp.adb (Check_Dispatching_Operation): New predicate
27450         Is_Visibly_Controlled, to determine whether a declaration of a
27451         primitive control operation for a derived type overrides an inherited
27452         one. Add warning if the explicit declaration does not override.
27453
27454 2004-05-10  Vincent Celier  <celier@gnat.com>
27455
27456         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
27457         some cases when the sources are no longer present.
27458
27459         * make.adb (Collect_Arguments): Fail if an external source, not part
27460         of any project need to be compiled, when switch -x has not been
27461         specified.
27462
27463         * makeusg.adb: Document new switch -x
27464
27465         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
27466         defaulted to False.
27467
27468         * switch-m.adb (Scan_Make_Switches): New switch -x
27469
27470         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
27471         gnatmake switch -x.
27472
27473         * gnat_ugn.texi: Document new gnatmake switch -x
27474
27475 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
27476
27477         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
27478
27479         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
27480         (process_attributes): Likewise.
27481
27482 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
27483
27484         * s-inmaop.ads: Fix spelling mistake in one of the comments.
27485
27486 2004-05-10  Robert Dewar  <dewar@gnat.com>
27487
27488         * gnat_ugn.texi: Document that for config pragma files, the maximum
27489         line length is always 32767.
27490
27491         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
27492         literals is now allowed.
27493
27494         * gnat-style.texi: Remove statement about splitting long lines before
27495         an operator rather than after, since we do not follow this rule at all.
27496         Clarify rule (really lack of rule) for spaces around exponentiation
27497
27498         * sem_elim.adb: Allow concatenation of string literals as well as a
27499         single string literal for pragma arguments.
27500
27501         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
27502
27503         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
27504         written for append case.
27505
27506         * frontend.adb: Changes to avoid checking max line length in config
27507         pragma files.
27508
27509         * g-os_lib.ads: Minor reformatting
27510
27511         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
27512         wrong in any case. Instead use standard value. Noticed during code
27513         reading.
27514
27515         * opt.ads (Max_Line_Length): New field, used to implement removal of
27516         limitation on length of lines when scanning config pragma files.
27517
27518         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
27519         makeutl.ads, makeutl.adb: Minor reformatting
27520
27521         * scn.adb: Do not check line length while scanning config pragma files
27522         Do not check line length while scanning out license information
27523
27524         * scng.adb: Changes to avoid line length checks while parsing config
27525         pragma files.
27526
27527 2004-05-10  GNAT Script  <nobody@gnat.com>
27528
27529         * Make-lang.in: Makefile automatically updated
27530
27531 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
27532
27533         * osint.adb (Find_Program_Name): Fix handling of VMS version
27534         number.
27535
27536 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
27537
27538         * g-os_lib.ads (Invalid_Time): New constant
27539
27540         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
27541         return OS_Time instead of time_t to match what is imported by Ada.
27542         Now return -1 if the file doesn't exist, instead of a random value
27543
27544 2004-05-05  Robert Dewar  <dewar@gnat.com>
27545
27546         * usage.adb: Add line for -gnatR?s switch
27547
27548         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
27549
27550         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
27551         and for Match (Data_First, Data_last)
27552
27553         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
27554         written when we are dealing with multi-unit files.
27555
27556 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
27557
27558         * Makefile.in: Remove unused targets and variables.
27559
27560 2004-05-05  Vincent Celier  <celier@gnat.com>
27561
27562         * switch-m.adb: New gnatmake switch -eI
27563
27564         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
27565         of new gnatmake switch -eInnn.
27566
27567         * makegpr.adb: Take into account new parameters Index and Src_Index in
27568         Prj.Util.
27569
27570         * clean.adb: Implement support for multi-unit sources, including new
27571         switch -i.
27572
27573         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
27574         Src_Index.
27575
27576         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
27577         (Extract_From_Q): New out parameter Index
27578         (Mark, Is_Marked): Subprograms moved to Makeutl
27579         (Switches_Of): New parameter Source_Index
27580         (Add_Switch): New parameter Index
27581         (Check): New parameter Source_Index
27582         (Collect_Arguments): New parameter Source_Index
27583         (Collect_Arguments_And_Compile): New parameter Source_Index
27584         (Compile): New parameter Source_Index
27585         Put subprograms in alphabetical order
27586         Add support for multi-source sources, including in project files.
27587
27588         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
27589         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
27590         Make.
27591
27592         * makeusg.adb: New gnatmake switch -eInnn
27593
27594         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
27595         Prj.Util.Value_Of.
27596
27597         * opt.ads (Main_Index): New variable, defaulted to 0.
27598
27599         * osint.ads, osinte.adb (Add_File): New parameter Index
27600         (Current_Source_Index): New function
27601
27602         * prj.adb: Take into account new components Index and Src_Index
27603
27604         * prj.ads (String_Element): New component Index
27605         (Variable_Value): New component Index
27606         (Array_Element): New component Src_Index
27607
27608         * prj-attr.adb: Indicate that optional index may be specified for
27609         attributes Main, Executable, Spec, Body and some of Switches.
27610
27611         * prj-attr.ads (Attribute_Kind): New values for optional indexes
27612         (Attribute_Record): New component Optional_Index
27613
27614         * prj-com.ads (File_Name_Data): New component Index
27615
27616         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
27617
27618         * prj-env.adb (Put): Output optional index
27619
27620         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
27621         attributes Spec and Body.
27622
27623         * prj-nmsc.adb: Process optional indexes
27624
27625         * prj-pp.adb: Ouput "at" for optional indexes
27626
27627         * prj-proc.adb: Take into account optional indexes
27628
27629         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
27630         Optional_Index. For string literal,
27631         process optional index when Optional_Index is True.
27632         (Parse_Expresion): New Boolean parameter Optional_Index
27633
27634         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
27635         (Set_Source_Index_Of): New procedure
27636
27637         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
27638         index.
27639
27640         * prj-util.ads (Executable_Of): New parameter Index
27641         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
27642         New parameter Src_Index, defaulted to 0.
27643
27644 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
27645
27646         PR ada/15257
27647         * sem_ch3.adb (Access_Definition): If this is an access parameter
27648         whose designated type is imported through a limited_with clause, do
27649         not add the enclosing subprogram to the list of private dependents of
27650         the type.
27651
27652 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
27653
27654         PR ada/15258
27655         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
27656         a limited_with clause, and the other is its non-limited view.
27657
27658 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
27659
27660         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
27661
27662         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
27663         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
27664         Stand.Boolean_Literals to produce references to entities
27665         Standard_False and Standard_True from compile-time computed boolean
27666         values.
27667
27668         * stand.ads (Boolean_Literals): New variable, provides the entity
27669         values for False and True, for use by the expander.
27670
27671 2004-05-05  Doug Rupp  <rupp@gnat.com>
27672
27673         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
27674         5vinmaop.adb: Unchecked convert Short_Address vice Address
27675
27676         * adaint.c, raise.c: Caste CRTL function return value
27677         to avoid gcc error on 32/64 bit IVMS.
27678
27679         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
27680         target = IA64/VMS.
27681
27682         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
27683
27684         * 5qsystem.ads (Address): Declare as Long_Integer
27685         (Short_Address): Declare as 32 bit subtype of Address
27686         Declare  abstract address operations to avoid gratuitous ambiguities.
27687
27688 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
27689
27690         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
27691         instead of the old Boolean_Entry_Barriers.
27692         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
27693
27694 2004-05-05  GNAT Script  <nobody@gnat.com>
27695
27696         * Make-lang.in: Makefile automatically updated
27697
27698 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
27699
27700         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
27701
27702 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
27703
27704         PR ada/15152
27705         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
27706         alone. Replacing object references by literals is inappropriate in a
27707         so low level context.
27708
27709 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
27710
27711         * a-exexpr.adb: Add comments
27712
27713 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
27714
27715         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
27716         declare the Ancestor_Tags array in Type_Specific_Data with a small size
27717         without risking a bounds check error when accessing one of its
27718         components.
27719         (Type_Specific_Data): Define Ancestor_Tags as a small array.
27720         This prevents us from hitting a limitation during the debug info
27721         generation when using stabs.
27722
27723         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
27724         small array.
27725         This prevents us from hitting a limitation during the debug info
27726         generation when using stabs.
27727
27728 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
27729
27730         lang-specs.h: Remove -gnatz* from specs.
27731
27732 2004-05-03  Vincent Celier  <celier@gnat.com>
27733
27734         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
27735
27736         * Make-lang.in, Makefile.in: Add gprmake
27737
27738 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
27739
27740         * sem_aggr.adb: Fix typo in comment.
27741
27742 2004-05-03  Robert Dewar  <dewar@gnat.com>
27743
27744         * make.adb: Minor reformatting
27745
27746         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
27747
27748         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
27749         so that it works when address is not a private type.
27750
27751         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
27752         properly with rewritten unchecked conversions. This prevents
27753         order-of-elaboration issues that can otherwise arise.
27754         (Minimum_Size): Don't check size of access types under VMS
27755
27756         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
27757         interpretations of integer literals as type System.Address.
27758
27759         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
27760         (Is_Descendent_Of): New function
27761
27762 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
27763
27764         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
27765         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
27766         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
27767
27768         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
27769         of the old Max_Entry_Queue_Depth.
27770
27771         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
27772         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
27773         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
27774
27775         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
27776         New entry for proper handling of Max_Entry_Queue_Depth.
27777         New entry for proper handling of No_Dynamic_Interrupts.
27778
27779         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
27780         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
27781         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
27782         the GNAT specific restriction Max_Entry_Queue_Depth.
27783         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
27784         the GNAT specific restriction No_Dynamic_Interrupts.
27785
27786         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
27787         instead of the old Boolean_Entry_Barriers.
27788         Use the new restriction No_Dynamic_Attachment instead of the old
27789         No_Dynamic_Interrupts.
27790
27791         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
27792         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
27793
27794         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
27795         of the old Max_Entry_Queue_Depth.
27796
27797 2004-05-03  GNAT Script  <nobody@gnat.com>
27798
27799         * Make-lang.in: Makefile automatically updated
27800
27801 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
27802
27803         * checks.adb (Enable_Range_Check): If the prefix of an index component
27804         is an access to an unconstrained array, perform check unconditionally.
27805
27806 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27807
27808         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
27809         Component_Clause.
27810
27811 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
27812
27813         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
27814         alternate stack setting. There was no support for the tasking cases
27815         and the changes eventually caused a number of side-effect failures in
27816         the non-tasking case too.
27817
27818 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
27819
27820         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
27821         -gnats is passed.
27822
27823 2004-04-29  Vincent Celier  <celier@gnat.com>
27824
27825         * make.adb (Gnatmake): Increase max size of argument array for
27826         gnatbind for the potential addition of -F.
27827         If there are Stand-Alone Library projects, invoke gnatbind with -F to
27828         be sure that elaboration flags will be checked.
27829
27830         * switch-c.adb: Correct call to Scan_Pos for -gnateI
27831
27832 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
27833
27834         * sem_warn.adb (Check_References): Move '<access-variable> may be
27835         null' warning out of under Warn_On_No_Value_Assigned.
27836
27837 2004-04-29  Ed Falis  <falis@gnat.com>
27838
27839         * gnat_ugn.texi: Fixed texi error
27840
27841 2004-04-29  Robert Dewar  <dewar@gnat.com>
27842
27843         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
27844         abstract operations if they come from predefined files.
27845
27846         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
27847         Dynamic, not RM).
27848
27849         * s-addope.adb: Correct obvious error in mod function
27850
27851 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
27852
27853         * Makefile.in: Add target pairs for powerpc darwin*
27854         tasking support.
27855
27856         * a-intnam-darwin.ads, s-osinte-darwin.adb,
27857         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
27858
27859 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
27860
27861         * Makefile.in: Add target macro definitions for s390*-linux*.
27862         * system-linux-s390.ads: New file.
27863         * system-linux-s390x.ads: New file.
27864
27865 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
27866
27867         * gnat_ugn.texi: Correct argument to @setfilename.
27868
27869 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
27870
27871         * a-exexpr.adb (Unwind_Word): New data type.
27872         (Unwind_Exception): Use it as type of Private1 and Private2.
27873
27874         * raise.c (db_action_for): Fix debug printf.
27875
27876 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
27877
27878         * a-wtmoio.ads: Formal type must be a modular type, not a signed
27879         integer type.
27880
27881 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27882
27883         * decl.c (gnat_to_gnu_entity, case object): Call
27884         __builtin_update_setjmp_buf.
27885
27886         * gigi.h (update_setjmp_buf): Deleted.
27887         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
27888
27889         * misc.c: (update_setjmp_buf): Deleted.
27890
27891         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
27892         around block of RTL.
27893
27894         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
27895
27896 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
27897
27898         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
27899         subprogram for which no pragma All_Calls_Remote applies, store the
27900         address of the real subprogram in the underlying record type, so local
27901         dereferences do not go through the PCS.
27902
27903 2004-04-26  Robert Dewar  <dewar@gnat.com>
27904
27905         * i-c.ads: Add some type qualifications to avoid ambiguities when
27906         compiling with s-auxdec.ads and a non-private address type.
27907
27908 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
27909
27910         * Makefile.rtl: Fix error in previous check-in:
27911         Add s-addope.o to non tasking object list (rather than tasking object
27912         list).
27913
27914 2004-04-26  Javier Miranda  <miranda@gnat.com>
27915
27916         * sem_aggr.adb: Fix typo in comments
27917         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
27918         Required to check the null-exclusion attribute.
27919
27920         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
27921         case of anonymous access types in record and array components. For a
27922         component definition the level is the same of the enclosing composite
27923         type.
27924
27925         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
27926         that are anonymous access types the level of accessibility depends on
27927         the enclosing type declaration. In order to have this information, set
27928         the scope of the anonymous access type to the enclosing record type
27929         declaration.
27930         (Array_Type_Declaration): In case of components that are anonymous
27931         access types the level of accessibility depends on the enclosing type
27932         declaration. In order to have this information, set the scope of the
27933         anonymous access type to the enclosing array type declaration.
27934
27935         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
27936         access type.
27937
27938         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
27939         renaming of anonymous access-to-constant types allowed if and only if
27940         the renamed object is access-to-constant.
27941
27942         * sem_util.adb (Type_Access_Level): In case of anonymous access types
27943         that are component_definition or discriminants of a nonlimited type,
27944         the level is the same as that of the enclosing component type.
27945
27946 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
27947
27948         * sem_elim.adb: Some minor code reorganization from code reading. Fix
27949         misprint in the function name (File_Name_Match).
27950
27951 2004-04-23  Laurent Guerby  <laurent@guerby.net>
27952
27953         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
27954         install.
27955
27956 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
27957
27958         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
27959
27960 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
27961
27962         * adaint.c (__gnat_try_lock): No longer requires that the parent
27963         directory be writable, the directory itself is enough.
27964         (gnat_is_absolute_path): Change profile, so that the call from
27965         GNAT.OS_Lib can be made more efficient.
27966
27967         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
27968         from GNAT.OS_Lib can be made more efficient.
27969
27970         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
27971         one copy of the file name. Found by code reading.
27972
27973 2004-04-23  Vincent Celier  <celier@gnat.com>
27974
27975         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
27976         Correct documentation on gnatmake switches transmitted to the compiler
27977
27978         * ali.ads: Minor comment fix
27979
27980 2004-04-23  Javier Miranda  <miranda@gnat.com>
27981
27982         * sem_ch6.adb: (Confirming Types): Code cleanup
27983
27984         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
27985         subprogram types: E_Anonymous_Access_Subprogram_Type and
27986         E_Anonymous_Access_Protected_Subprogram_Type.
27987
27988 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
27989
27990         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
27991         whether a pragma All_Calls_Remote applies to the subprogram on which
27992         'Access is taken.
27993         No functional change is introduced by this revision; the new parameter
27994         will be used to allow calls to local RCI subprograms to be optimized
27995         to not use the PCS in the case where no pragma All_Calls_Remote applies,
27996         as is already done in the PolyORB implementation of the DSA.
27997
27998         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
27999         whether a pragma All_Calls_Remote applies to the subprogram on which
28000         'Access is taken.
28001         No functional change is introduced by this revision; the new parameter
28002         will be used to allow calls to local RCI subprograms to be optimized
28003         to not use the PCS in the case where no pragma All_Calls_Remote applies,
28004         as is already done in the PolyORB implementation of the DSA.
28005
28006 2004-04-23  Robert Dewar  <dewar@gnat.com>
28007
28008         * Makefile.rtl: Add entry for s-addope.o in run time library list
28009         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
28010         * s-addope.ads, s-addope.adb: New files.
28011
28012         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
28013         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
28014         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
28015         System.Address to be non-private and signed.
28016
28017         * sem_elim.adb: Minor reformatting (fairly extensive)
28018         Some minor code reorganization from code reading
28019         Add a couple of ??? comments
28020
28021 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28022
28023         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
28024         (tree_transform, case N_If_Statement): Remove non-determinism.
28025
28026         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
28027
28028 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
28029
28030         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
28031         Eliminate' section.
28032
28033         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
28034         no longer used as a parameter name for Eliminate pragma).
28035
28036 2004-04-22  Laurent Guerby  <laurent@guerby.net>
28037
28038         PR optimization/14984
28039         PR optimization/14985
28040         * trans.c (gigi): Fix non determinism leading to bootstrap
28041         comparison failures.
28042
28043 2004-04-21  Pascal Obry  <obry@gnat.com>
28044
28045         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
28046         passed to spawnvp() to properly handle program pathname with spaces on
28047         Win32.
28048
28049 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
28050
28051         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
28052         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
28053         unlocked in case of exceptions.
28054
28055 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
28056
28057         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
28058         This function does not exist anymore.
28059
28060 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
28061
28062         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
28063
28064         * link.c: Move variables to the __gnat name space.
28065
28066         * Makefile.in: list link.o explicitly when needed.
28067
28068         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
28069
28070 2004-04-21  Javier Miranda  <miranda@gnat.com>
28071
28072         * einfo.adb (Original_Access_Type): New subprogram
28073         (Set_Original_Access_Type): New subprogram
28074         (Write_Field21_Name): Write the name of the new field
28075
28076         * einfo.ads (Original_Access_Type): New field present in access to
28077         subprogram types.
28078         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
28079         E_Anonymous_Access_Protected_Subprogram_Type.
28080
28081         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
28082         subprogram types.
28083
28084         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
28085         to anonymous access to subprogram types.
28086
28087         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
28088         to subprogram types.
28089
28090         * sem_ch3.adb (Access_Definition): Complete decoration of entities
28091         corresponding to anonymous access to subprogram types.
28092         (Analyze_Component_Declaration): Add new actual to the call to
28093         subprogram replace_anonymous_access_to_protected_subprogram.
28094         (Array_Type_Declaration): Add new actual to the call to subprogram
28095         replace_anonymous_access_to_protected_subprogram.
28096         (Process_Discriminants): Add new actual to the call to subprogram
28097         replace_anonymous_access_to_protected_subprogram.
28098         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
28099
28100         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
28101         formal.
28102
28103         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
28104         access to subprogram types.
28105
28106         * sem_util.adb (Has_Declarations): Addition of package_specification
28107         nodes.
28108
28109 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
28110
28111         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
28112         inlined flags to renamed entity only if in current unit.
28113
28114 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
28115
28116         * s-parint.ads: Add DSA implementation marker.
28117
28118         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
28119         value of System.Partition_Interface.DSA_Implementation to determine
28120         what version of the distributed systems annex is available (no
28121         implementation, GLADE, or PolyORB).
28122
28123 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
28124
28125         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
28126
28127 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28128
28129         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
28130         with new type if alias sets differ.
28131         Fixes ACATS c41103b.
28132
28133 2004-04-21  Vincent Celier  <celier@gnat.com>
28134
28135         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
28136         Add array Lang_Args for the language specific compiling argument
28137         switches.
28138
28139         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
28140
28141 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
28142
28143         * gnat_rm.texi: Update the descripton of the Eliminate pragma
28144         according to the recent changes in the format of the parameters of the
28145         pragma (replacing Homonym_Number with Source_Location).
28146
28147 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
28148
28149         * 5isystem.ads: Removed, unused.
28150
28151         * gnat_rm.texi: Redo 1.13 change.
28152
28153 2004-04-19  Robert Dewar  <dewar@gnat.com>
28154
28155         * s-stoele.ads: Clean up definition of Storage_Offset (the new
28156         definition is cleaner, avoids the kludge of explicit Standard operator
28157         references, and also is consistent with a visible System.Address with
28158         no visible operations.
28159
28160         * s-geveop.adb: Add declarations to avoid assumption of visible
28161         operations on type System.Address (since these might not be available
28162         if Address is a non-private type for which the operations
28163         are made abstract).
28164
28165         * sem_eval.adb: Minor reformatting
28166
28167         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
28168         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
28169         reformatting (new function spec format).
28170
28171         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
28172         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
28173         s-caun64.adb: Add declarations to avoid assumption of visible
28174         operations on type System.Address (since these might not be available
28175         if Address is a non-private type for which the operations are made
28176         abstract).
28177
28178         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
28179
28180         * exp_intr.adb: Minor comment update
28181
28182         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
28183
28184         * 5omastop.adb: Add declarations to avoid assumption of visible
28185         operations on type System.Address (since these might not be available
28186         if Address is a non-private type for which the operations
28187         are made abstract).
28188
28189 2004-04-19  Vincent Celier  <celier@gnat.com>
28190
28191         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
28192
28193         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
28194         defaulted to Ada.
28195
28196         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
28197         defaulted to Ada.
28198         Call Check with Process_Languages.
28199         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
28200         with Process_Languages.
28201         (Recursive_Check): New Boolean parameter Process_Languages. Call
28202         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
28203         Process_Languages.
28204
28205         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
28206
28207         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
28208         parameter Ada_Main, defaulted to True.
28209         Check for Ada specific characteristics only when Ada_Main is True.
28210
28211         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
28212
28213         * prj.adb: (Project_Empty): Add new Project_Data components.
28214
28215         * prj.ads: New types and tables for non Ada languages.
28216         (Project_Data): New components Languages, Impl_Suffixes,
28217         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
28218         Include_Path, Include_Data_Set.
28219
28220         * prj-env.ads, prj-env.adb: Minor reformatting
28221
28222         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
28223         Put subprograms in alphabetical order
28224
28225         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
28226         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
28227         Opt.Follow_Links.
28228
28229         * mlib-prj.adb: Back out modification in last version, as they are
28230         incorrect.
28231         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
28232
28233         * make.adb: (Mains): Moved to package Makeutl
28234         (Linker_Opts): Moved to package Makeutl
28235         (Is_External_Assignment): Moved to package Makeutl
28236         (Test_If_Relative_Path): Moved to package Makeutl
28237         (Gnatmake): Move sorting of linker options to function
28238         Makeutl.Linker_Options_Switches.
28239
28240         * makeutl.ads, makeutl.adb: New files.
28241
28242         * Makefile.in: Add makeutl.o to the object files for gnatmake
28243
28244         * makeusg.adb: Add line for new switch -eL.
28245
28246         * gnatls.adb (Image): New function.
28247         (Output_Unit): If in verbose mode, output the list of restrictions
28248         specified by pragmas Restrictions.
28249
28250         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
28251         Text_IO.
28252
28253         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
28254         needed, to put it in the range 1970 (included) - 2026 (excluded).
28255         (Time_Of): Do not shift Unix_Min_Year (1970).
28256         Shift the date by multiple of 56 years, if needed, to put it in the
28257         range 1970 (included) - 2026 (excluded).
28258
28259         * adaint.h, adaint.c (__gnat_set_executable): New function.
28260
28261 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28262
28263         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
28264         and pop GC context.
28265         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
28266         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
28267         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
28268         (tree_transform, case N_Code_Statement): Likewise.
28269         (gnat_expand_stmt, case LABEL_STMT): Don't look at
28270         LABEL_STMT_FIRST_IN_EH.
28271         (gnat_expand_stmt, case ASM_STMT): New case.
28272
28273         * utils2.c (build_unary_op): Properly set TREE_READONLY of
28274         UNCONSTRAINED_ARRAY_REF.
28275
28276         * utils.c (poplevel): Temporarily push/pop GC context around inline
28277         function expansion.
28278
28279         * decl.c (maybe_variable): Properly set TREE_READONLY of
28280         UNCONSTRAINED_ARRAY_REF.
28281         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
28282
28283         * ada-tree.def: (ASM_STMT): New.
28284
28285         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
28286         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
28287         ASM_STMT_INPUT): New.
28288         (ASM_STMT_CLOBBER): Likewise.
28289
28290 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
28291
28292         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
28293         general rcheck mechanism to raise Program_Error for E.4(18), instead
28294         of a custom raiser in System.Partition_Interface.
28295         Part of general cleanup work before PolyORB integration.
28296
28297         * snames.ads, snames.adb: Add new runtime library entities and names
28298         for PolyORB DSA.
28299
28300         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
28301         exp_dist.
28302         (Build_Subprogram_Id): New subprogram provided by exp_dist
28303         Code reorganisation in preparation for PolyORB integration.
28304
28305         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
28306         exp_dist.
28307         (Build_Subprogram_Id): New subprogram provided by exp_dist
28308
28309         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
28310         actual parameter types for call to dereference of an
28311         access-to-subprogram type.
28312
28313         * rtsfind.ads: Add new runtime library entities and names for PolyORB
28314         DSA.
28315
28316         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
28317         instead, which has the same behaviour here since we never pass it a
28318         NULL pointer.
28319
28320         * link.c (run_path_option, Solaris case): Use -Wl, as for other
28321         platforms.
28322
28323         * Makefile.in: adjust object file lists for gnatlink and gnatmake
28324         to account for new dependency upon Interfaces.C.Strings + link.o
28325         For x86 FreeBSD, use 86numaux.
28326
28327         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
28328         from Mlib.Tgt to Mlib.
28329
28330         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
28331         target-independent.
28332
28333         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
28334         target-specific versions of this subprogram, now implemented as a
28335         target-independent function in Mlib.
28336
28337         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
28338         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
28339         (Linker_Library_Path_Option): Remove target-specific versions of this
28340         subprogram, now implemented as a target-independent function in Mlib.
28341
28342         * atree.adb: (Allocate_Initialize_Node): New subprogram.
28343         Factors out node table slots allocation.
28344         (Fix_Parents): New subprogram.
28345         Encapsulate the pattern of fixing up parent pointers for syntactic
28346         children of a rewritten node.
28347         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
28348         (Rewrite): Use New_Copy when creating saved copy of original node.
28349         (Replace): Use Copy_Node to copy nodes.
28350
28351 2004-04-19  Javier Miranda  <miranda@gnat.com>
28352
28353         * sprint.adb (Sprint_Node_Actual): Give support to the new
28354         Access_To_Subprogram node available in Access_Definition nodes. In
28355         addition, give support to the AI-231 node fields: null-exclusion,
28356         all-present, constant-present.
28357
28358         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
28359
28360         * sinfo.ads, sinfo.adb:
28361         New field Access_To_Subprogram_Definition in Access_Definition nodes
28362
28363         * sem_ch6.adb (Process_Formals): Move here the code that creates and
28364         decorates internal subtype declaration corresponding to the
28365         null-excluding formal. This code was previously in Set_Actual_Subtypes.
28366         In addition, carry out some code cleanup on this code. In case of
28367         access to protected subprogram call
28368         Replace_Anonymous_Access_To_Protected_Subprogram.
28369         (Set_Actual_Subtypes): Code cleanup.
28370
28371         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
28372         Find_Type in case of anonymous access renamings. Add warning in case of
28373         null-excluding attribute used in anonymous access renaming.
28374
28375         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
28376         subprogram
28377
28378         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
28379         subprogram.
28380         (Access_Definition): In case of anonymous access to subprograms call
28381         the corresponding semantic routine to decorate the node.
28382         (Access_Subprogram_Declaration): Addition of some comments indicating
28383         some code that probably should be added here. Detected by comparison
28384         with the access_definition subprogram.
28385         (Analyze_Component_Declaration): In case of access to protected
28386         subprogram call Replace_Anonymous_Access_To_Protected.
28387         (Array_Type_Declaration): In case of access to protected subprogram call
28388         Replace_Anonymous_Access_To_Protected_Subprogram.
28389         (Process_Discriminants): In case of access to protected subprogram call
28390         Replace_Anonymous_Access_To_Protected_Subprogram.
28391
28392         * par.adb (P_Access_Definition): New formal that indicates if the
28393         null-exclusion part was present.
28394         (P_Access_Type_Definition): New formal that indicates if the caller has
28395         already parsed the null-excluding part.
28396
28397         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
28398         (P_Identifier_Declarations): Code cleanup and give support to renamings
28399         of anonymous access to subprogram types.
28400         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
28401         (P_Array_Type_Definition): Give support to AI-254.
28402         (P_Component_Items): Give support to AI-254.
28403         (P_Access_Definition): New formal that indicates if the header was
28404         already parsed by the caller.
28405         (P_Access_Type_Definition): New formal that indicates if the caller has
28406         already parsed the null-excluding part.
28407
28408         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
28409         call to P_Access_Definition.
28410
28411 2004-04-19  Geert Bosch  <bosch@gnat.com>
28412
28413         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
28414         the delicate semantics of floating-point to integer conversion.
28415         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
28416
28417         * eval_fat.adb (Machine_Mantissa): Moved to spec.
28418         (Machine_Radix): New function.
28419
28420         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
28421         conversion checks.
28422         (Machine_Radix): New function also for use in conversion checks.
28423
28424 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
28425
28426         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
28427
28428         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
28429         to decorate the access-to-protected subprogram and the equivalent type.
28430
28431         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
28432         to anonymous access to subprogram types.
28433
28434         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
28435         constant-folding, for legality checks in contexts that require an RM
28436         static expression.
28437
28438         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
28439         temporary but stack checking is not enabled, increment serial number
28440         to so that symbol generation is consistent with and without stack
28441         checking.
28442
28443         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
28444         independent on whether stack checking is enabled, caller must check
28445         the corresponding flag.
28446
28447         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
28448         range checks.
28449         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
28450         parent if it has discriminants.
28451         (Build_Derived_Private_Type): Constructed full view does
28452         not come from source.
28453         (Process_Discriminants): Default discriminants on a tagged type are
28454         legal if this is the internal completion of a private untagged
28455         derivation.
28456
28457         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
28458         no constraint checks, because it corresponds to an existing object.
28459
28460         * sem_prag.adb (Process_Convention): Pragma applies
28461         only to subprograms in the same declarative part, i.e. the same unit,
28462         not the same scope.
28463
28464         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
28465         ignore type mismatch on a numeric conversion if expression comes from
28466         expansion.
28467
28468 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
28469
28470         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
28471         Homonym_Number parameter, add processing for Source_Location parameter
28472         corresponding.
28473         (Check_Eliminated): Remove the check for homonym numbers, add the check
28474         for source location traces.
28475
28476         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
28477         with Arg_Source_Location corresponding to the changes in the format of
28478         the pragma.
28479
28480         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
28481         Eliminate pragma corresponding to the changes in the format of the
28482         pragma: Homonym_Number is replaced with Source_Location, two ways of
28483         distinguishing homonyms are mutially-exclusive.
28484
28485 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
28486
28487         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
28488
28489         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
28490         No_Dollar_In_Label, no longer necessary, as it is always True.
28491         (Strip_Suffixes): Likewise.
28492
28493 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
28494
28495         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
28496         modulus for compatibility with size clause on targets with 16-bit
28497         Integer.
28498
28499         * layout.adb (Discrimify): In the case of private types, set Vtyp to
28500         full type to fix type mismatches on calls to size functions for
28501         discriminant-dependent array components.
28502
28503 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
28504
28505         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
28506         lib.
28507
28508 2004-04-19  Pascal Obry  <obry@gnat.com>
28509
28510         * mdll-utl.adb (Locate): New version is idempotent.
28511
28512 2004-04-17  Laurent Guerby  <laurent@guerby.net>
28513
28514         PR ada/14988 (partial)
28515         * impunit.adb: Fix typo.
28516
28517 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
28518
28519         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
28520         and install-rts-cert targets.  Remove all gnatlib and gnattools
28521         targets and all other rts-* targets (moved to libada).  Remove (now)
28522         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
28523         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
28524
28525 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28526
28527         * trans.c (tree_transform): Shortcut returning error_mark_node for
28528         statements in annotate_only_mode.
28529         (tree_transform, case N_Label, case N_Return_Statement,
28530         N_Goto_Statement): Make statement tree instead of generating code.
28531         (tree_transform, case N_Assignment_Statement): No longer check
28532         type_annotate_only.
28533         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
28534         RETURN_STMT): New.
28535         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
28536         New fcns.
28537         (gnat_to_gnu): Collect any RTL generated and deal with it.
28538         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
28539         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
28540         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
28541
28542         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
28543
28544         * ada-tree.def (EXPR_STMT): Fix typo in name.
28545         (BLOCK_STMT, IF_STMT): New nodes.
28546
28547         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
28548         LABEL_STMT_FIRST_IN_EH): New macros.
28549         (RETURN_STMT_EXPR): Likewise.
28550
28551         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
28552         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
28553
28554 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
28555
28556         * atree.ads: Correct documentation on extended nodes.
28557
28558         * link.c: Set run_path_option for FreeBSD.
28559
28560 2004-04-08  Vincent Celier  <celier@gnat.com>
28561
28562         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
28563         one of the ALI file, do not link with DEC lib.
28564
28565         * par.adb Remove the last two characters ("%s" or "%b") when checking
28566         if a language defined unit may be recompiled.
28567
28568 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
28569
28570         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
28571         removal of abstract operation leaves no possible interpretation for
28572         expression.
28573
28574         * sem_eval.adb (Eval_Qualified_Expression): Use
28575         Set_Raises_Constraint_Error on node when needed, so that it does not
28576         get optimized away by subsequent optimizations.
28577
28578         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
28579         operands even when they are not wrapped in a type conversion.
28580
28581 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
28582
28583         * sem_prag.adb (Set_Exported): Warn about making static as result of
28584         export only when the export is coming from source. This may be not
28585         be true e.g. on VMS where we expand export pragmas for exception codes
28586         together with imported or exported exceptions, and we don't want the
28587         user to be warned about something he didn't write.
28588
28589 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
28590
28591         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
28592         duplication between normal entities and those declared as renamings.
28593         No functional change.
28594
28595         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
28596         inline functions returning an unconstrained result.
28597
28598 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
28599
28600         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
28601         conform to what other front-ends do.
28602
28603 2004-04-08  Doug Rupp  <rupp@gnat.com>
28604
28605         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
28606         libraries.
28607
28608 2004-04-06  Pascal Obry  <obry@gnat.com>
28609
28610         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
28611
28612         * osint.adb (Program_Name): Do not look past a directory separator.
28613
28614 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
28615
28616         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
28617
28618         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
28619         requirement for preserving a copy of the original assignment node.
28620
28621         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
28622
28623 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
28624
28625         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
28626         when supported.
28627
28628 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
28629
28630         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
28631         operator calls in functional notation, and apply
28632         Universal_Interpretation to operands, not to their type.
28633
28634 2004-04-06  Robert Dewar  <dewar@gnat.com>
28635
28636         * 5wdirval.adb: Minor reformatting
28637
28638 2004-04-06  Ed Falis  <falis@gnat.com>
28639
28640         * gnat_rm.texi: Improve a reference to the GCC manual
28641
28642 2004-04-05  Vincent Celier  <celier@gnat.com>
28643
28644         * adaint.h, adaint.c: Add function __gnat_named_file_length
28645
28646         * impunit.adb: Add Ada.Directories to the list
28647
28648         * Makefile.in: Add VMS and Windows versions of
28649         Ada.Directories.Validity package body.
28650
28651         * Makefile.rtl: Add a-direct and a-dirval
28652
28653         * mlib-tgt.ads: Minor comment update.
28654
28655         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
28656         a-direct.ads, a-direct.adb: New files.
28657
28658 2004-04-05  Vincent Celier  <celier@gnat.com>
28659
28660         PR ada/13620
28661         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
28662         just to the compiler.
28663
28664 2004-04-05  Robert Dewar  <dewar@gnat.com>
28665
28666         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
28667         returned string is 1.
28668
28669         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
28670
28671         * eval_fat.ads: Minor reformatting
28672
28673         * g-curexc.ads: Document that lower bound of returned string values
28674         is always one.
28675
28676         * gnatlink.adb: Add ??? comment for previous change
28677         (need to document why this is VMS specific)
28678
28679         * s-stoele.ads: Minor reformatting
28680
28681         * tbuild.ads: Minor reformatting throughout (new function specs)
28682
28683         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
28684         after WITH.
28685
28686         * scng.adb: Minor reformatting
28687
28688 2004-04-05  Geert Bosch  <bosch@gnat.com>
28689
28690         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
28691         (Leading_Part): Still perform truncation to machine number if the
28692         specified radix_digits is greater or equal to machine_mantissa.
28693
28694 2004-04-05  Javier Miranda  <miranda@gnat.com>
28695
28696         * par-ch3.adb: Complete documentation of previous change
28697         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
28698         (aliased must appear before constant).
28699
28700         * par-ch4.adb: Complete documentation of previous change.
28701
28702         * par-ch6.adb: Complete documentation of previous change.
28703
28704         * sinfo.ads: Fix typo in commment.
28705
28706 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
28707
28708         * sem_ch3.adb (Inherit_Components): If derived type is private and has
28709         stored discriminants, use its discriminants to constrain parent type,
28710         as is done for non-private derived record types.
28711
28712         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
28713         Ada 2005 AI-310: an abstract non-dispatching operation is not a
28714         candidate interpretation in an overloaded call.
28715
28716         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
28717         expression is Null and target type is not an access type (e.g. a
28718         non-private address type).
28719
28720 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
28721
28722         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
28723         statement whose right-hand side is an inlined call, save a copy of the
28724         original assignment subtree to preserve enough consistency for
28725         Analyze_Assignment to proceed.
28726
28727         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
28728         complete assignment subtree which is now unnecessary, as the expansion
28729         of inlined call has been improved to preserve a consistent assignment
28730         tree.  Note_Possible_Modification must be called only
28731         after checks have been applied, or else unnecessary checks will
28732         be generated.
28733
28734         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
28735         of explicit dereferences that do not Come_From_Source:
28736          - be selective on cases where we must go back to the dereferenced
28737            pointer (an assignment to an implicit dereference must not be
28738            recorded as modifying the pointer);
28739          - do not rely on Original_Node being present (Analyze_Assignment
28740            calls Note_Possible_Modification on a copied tree).
28741
28742         * sem_warn.adb (Check_References): When an unset reference to a pointer
28743         that is never assigned is encountered, prefer '<pointer> may be null'
28744         warning over '<pointer> is never assigned a value'.
28745
28746 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
28747
28748         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
28749         the ABI.
28750
28751 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
28752
28753         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
28754         libexc. We currently don't reference anything in this library and
28755         linking it in triggers linker warnings we don't want to see.
28756
28757         * init.c: Update comments.
28758
28759 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28760
28761         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
28762         * utils.c (create_field_decl): Likewise.
28763         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
28764
28765 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
28766
28767         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
28768         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
28769         Add info directory entry and category.
28770
28771 2004-04-02  Jan Hubicka  <jh@suse.cz>
28772
28773         * utils.c: Include function.h
28774         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
28775
28776 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
28777
28778         PR ada/14150
28779         * Make-lang.in: Clean up generation of documentation
28780
28781         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
28782
28783         * xgnatug.adb: Removed, replaced by xgnatugn.adb
28784
28785         * xgnatugn.adb: Replaces xgnatug.adb
28786
28787         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
28788
28789         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
28790
28791         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
28792         gnat_ug_wnt.texi: Removed.
28793
28794 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
28795
28796         * utils2.c: Update copyright notice.
28797
28798 2004-04-01  Robert Dewar  <dewar@gnat.com>
28799
28800         * checks.adb: Minor reformatting throughout
28801         Note that prev checkin added RM reference to alignment warning
28802
28803 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
28804
28805         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
28806         non-static when building aggregate for bit-packed array.
28807
28808         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
28809         function call that is itself the actual in a procedure call, build
28810         temporary for it.
28811
28812         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
28813         a string literal, create a temporary for it, constant folding only
28814         handles scalars here.
28815
28816 2004-04-01  Vincent Celier  <celier@gnat.com>
28817
28818         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
28819         Error_Msg_SP): New empty procedures to instantiate the Scanner.
28820         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
28821         tokens.
28822         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
28823         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
28824         and get the checksum.
28825
28826         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
28827         already in the Q.
28828         Increase the Marking_Label at the end of the Multiple_Main_Loop,
28829         instead of at the beginning.
28830
28831         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
28832         directly.
28833         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
28834         on VMS.
28835
28836         * osint.ads (Multi_Unit_Index_Character): New Character global variable
28837
28838         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
28839         not '~' directly.
28840
28841         * par.adb: Remove test on file name to detect language defined units.
28842         Add test on unit name, after parsing, to detect language defined units
28843         that are not compiled with -gnatg (except System.RPC and its children)
28844
28845         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
28846         following units without style checking.
28847
28848         * switch-c.adb: Change -gnatC to -gnateI
28849
28850         * usage.adb: Document new switch -gnateInnn
28851
28852         * scng.adb (Accumulate_Token_Checksum): New procedure
28853         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
28854         word or literal number.
28855         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
28856         numbers.
28857
28858 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
28859
28860         * a-tasatt.adb,
28861         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
28862         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
28863         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
28864         5vtpopde.adb: Add missing 'constant' keywords.
28865
28866 2004-04-01  Javier Miranda  <miranda@gnat.com>
28867
28868         * par-ch4.adb: (P_Allocator): Code cleanup
28869
28870         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
28871         attribute.
28872
28873         * sinfo.ads: Complete documentation of previous change
28874
28875 2004-04-01  Pascal Obry  <obry@gnat.com>
28876
28877         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
28878         only on VMS.  This special handling was done because an old GNU/ld bug
28879         on Windows which has been fixed.
28880
28881 2004-04-01  GNAT Script  <nobody@gnat.com>
28882
28883         * Make-lang.in: Makefile automatically updated
28884
28885 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28886
28887         * decl.c (gnat_to_gnu_entity, make_type_from_size):
28888         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
28889         * trans.c (tree_transform, convert_with_check): Likewise.
28890         * utils.c (gnat_signed_or_unsigned_type): Likewise.
28891         (build_vms_descriptor, unchecked_convert): Likewise.
28892         * utils2.c (nonbinary_modular_operation): Likewise.
28893
28894 2004-03-29  Javier Miranda  <miranda@gnat.com>
28895
28896         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
28897         (Install_Null_Excluding_Check): Local subprogram that determines whether
28898         an access node requires a runtime access check and if so inserts the
28899         appropriate run-time check.
28900         (Apply_Access_Check): Call Install_Null_Excluding check if required
28901         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
28902
28903         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
28904
28905         * einfo.ads: Fix typo in comment
28906
28907         * exp_ch3.adb (Build_Assignment): Generate conversion to the
28908         null-excluding type to force the corresponding run-time check.
28909         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
28910         type to force the corresponding run-time check.
28911
28912         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
28913         the null-excluding type to force the corresponding run-time check.
28914
28915         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
28916         case of access types unless they have the null-excluding attribute.
28917
28918         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
28919         part.
28920
28921         * exp_util.ads: Fix typo in comment
28922
28923         * par.adb (P_Null_Exclusion): New subprogram
28924         (P_Subtype_Indication): New formal that indicates if the null-excluding
28925         part has been scanned-out and it was present
28926
28927         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
28928
28929         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
28930         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
28931         type to force the corresponding run-time check
28932         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
28933         components
28934         (Resolve_Array_Aggregate): Carry out some static checks
28935         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
28936
28937         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
28938         attribute must be set only if specified by means of the null-excluding
28939         part. In addition, we must also propagate the access-constant attribute
28940         if present.
28941         (Access_Subprogram_Declaration, Access_Type_Declaration,
28942         Analyze_Component_Declaration, Analyze_Object_Declaration,
28943         Array_Type_Declaration, Process_Discriminants,
28944         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
28945         and carry out some static checks.
28946         (Build_Derived_Access_Type): Set the null-excluding attribute
28947         (Derived_Type_Declaration, Process_Subtype): Carry out some static
28948         checks.
28949
28950         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
28951
28952         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
28953
28954         * sem_ch6.adb (Process_Formals): Carry out some static checks.
28955         (Set_Actual_Subtypes): Generate null-excluding subtype if the
28956         null-excluding part was present; it is not required to be done here in
28957         case of anonymous access types.
28958         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
28959         value.
28960
28961         * sem_res.adb (Resolve_Actuals): Carry out some static check
28962         (Resolve_Null): Allow null in anonymous access
28963
28964         * sinfo.adb: New subprogram Null_Exclusion_Present
28965         All_Present and Constant_Present available on access_definition nodes
28966
28967         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
28968         object_declaration, derived_type_definition, component_definition,
28969         discriminant_specification, access_to_object_definition,
28970         access_function_definition, allocator, access_procedure_definition,
28971         access_definition, parameter_specification, All_Present and
28972         Constant_Present flags available on access_definition nodes.
28973
28974 2004-03-29  Robert Dewar  <dewar@gnat.com>
28975
28976         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
28977         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
28978         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
28979         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
28980         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
28981         sem_prag.adb: Updates to handle multiple units/file
28982
28983         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
28984
28985         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
28986         sem_util.adb: Minor reformatting
28987
28988         * sem_ch12.adb: Add comment for previous change
28989
28990 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
28991
28992         * osint.adb (Executable_Prefix): Set Exec_Name to the current
28993         executable name when not initialized. Otherwise, use its current value.
28994
28995         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
28996         initialize it to another executable name than the current one. This
28997         allows to configure paths for an executable name (gnatmake) different
28998         from the current one (gnatdist).
28999
29000 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
29001
29002         * exp_ch6.adb (Expand_Call): A call to a function declared in the
29003         current unit cannot be inlined if it appears in the body of a withed
29004         unit, to avoid order of elaboration problems in gigi.
29005
29006         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
29007         information for protected (wrapper) operation as well, to simplify gdb
29008         use.
29009
29010         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
29011         protected body, indicate that the entity for the generated spec comes
29012         from source, to ensure that references are properly generated for it.
29013         (Build_Body_To_Inline): Do not inline a function that returns a
29014         controlled type.
29015
29016         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
29017         apply convention to homonyms that are declared explicitly.
29018
29019         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
29020         that renames an equality operator and the operands are overloaded,
29021         resolve them with the declared formal types, before rewriting as an
29022         operator.
29023
29024 2004-03-29  GNAT Script  <nobody@gnat.com>
29025
29026         * Make-lang.in: Makefile automatically updated
29027
29028 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
29029
29030         * memtrack.adb: Log realloc calls, which are treated as free followed
29031         by alloc.
29032
29033 2004-03-25  Vincent Celier  <celier@gnat.com>
29034
29035         * prj-makr.adb (Process_Directories): Detect when a file contains
29036         several units. Do not include such files in the config pragmas or
29037         in the naming scheme.
29038
29039         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
29040         Resolve links only when not in Trusted_Mode.
29041         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
29042         Do not resolve links for the display names.
29043
29044         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
29045         resolve links when computing the display names.
29046
29047 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
29048
29049         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
29050         attribute reference does not denote a subtype, it can be any
29051         expression that has a classwide type, potentially after an implicit
29052         dereference.  In particular, the prefix can be a view conversion for
29053         a classwide type (for which Is_Object_Reference holds), but it can
29054         also be a value conversion for an access-to-classwide type. In the
29055         latter case, there is an implicit dereference, and the original node
29056         for the prefix does not verify Is_Object_Reference.
29057
29058         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
29059         conversion of a discriminant-dependent component of a mutable object
29060         is one itself.
29061
29062 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
29063
29064         * freeze.adb (Freeze_Entity): When an inherited subprogram is
29065         inherited, has convention C, and has unconstrained array parameters,
29066         place the corresponding warning on the derived type declaration rather
29067         than the original subprogram.
29068
29069         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
29070         indication on renaming declaration, if formal has a box and actual
29071         is absent.
29072
29073         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
29074         determine whether to generate an implicit or explicit reference to
29075         the renamed entity.
29076
29077         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
29078         subprogram renaming comes from a defaulted formal subprogram in an
29079         instance.
29080
29081 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
29082
29083         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
29084         value expressions to ensure that calls within a component definition
29085         will be checked (since those are evaluated during the record type's
29086         elaboration).
29087
29088 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
29089
29090         * s-tpobop.adb: Code clean up:
29091         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
29092         code.
29093         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
29094
29095 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
29096
29097         * Makefile.in: Clean up in the ravenscar run time.
29098
29099 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29100
29101         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
29102         of No_Strict_Aliasing to build_pointer_type_for_mode.
29103         * utils.c (update_pointer_to): Walk pointer and ref chains.
29104
29105 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
29106
29107         * ali.ads: Fix Comment about Dynamic_Elab.
29108
29109         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
29110         Has_RACW, Is_Generic, etc.)
29111         (Output_Object, Gnatls): Take into account ALI files not attached to
29112         an object.
29113
29114 2004-03-22  Vincent Celier  <celier@gnat.com>
29115
29116         * gprep.adb: Change all String_Access to Name_Id
29117         (Is_ASCII_Letter): new function
29118         (Double_File_Name_Buffer): New procedure
29119         (Preprocess_Infile_Name): New procedure
29120         (Process_Files): New procedure
29121         (Gnatprep): Check if output and input are existing directories.
29122         Call Process_Files to do the real job.
29123
29124 2004-03-22  Robert Dewar  <dewar@gnat.com>
29125
29126         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
29127         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
29128
29129 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
29130
29131         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
29132         case when the source contains only comments.
29133
29134 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
29135
29136         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
29137         declaration for a child subprogram body that acts as a spec, indicate
29138         that the entity in the declaration needs debugging information.
29139
29140         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
29141         full view if the subtype is created for a constrained record component;
29142         gigi has enough information to construct the record, and there is no
29143         place in the tree for the declaration.
29144
29145         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
29146         serial number for the dummy body that is built for analysis, to avoid
29147         inconsistencies in the generation of internal names when compiling
29148         with -gnatN.
29149
29150 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
29151
29152         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
29153         object.
29154
29155 2004-03-22  GNAT Script  <nobody@gnat.com>
29156
29157         * Make-lang.in: Makefile automatically updated
29158
29159 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29160
29161         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
29162         * trans.c (tree_transform, emit_index_check): Likewise.
29163         * utils.c (build_template): Likewise.
29164         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
29165         (maybe_unconstrained_array, unchecked_convert): Likewise.
29166         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
29167         (build_unary_op): Likewise.
29168         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
29169         (fill_vms_descriptor): Likewise.
29170         (build_call_alloc_dealloc): Likewise.
29171         ALIGN is unsigned.
29172         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
29173
29174 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
29175
29176         PR other/14630
29177         * gnat_ug.texi: Add info directory category and entry.
29178         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
29179         gnat_ug_wnt.texi: Regenerate.
29180
29181 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
29182
29183         * ada-tree.h: Update copyright notice.
29184         Minor reformatting.
29185
29186 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
29187
29188         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
29189         as regular exception objects and not as mere integers representing the
29190         condition code.  The latter approach required some dynamics to mask off
29191         severity bits, which did not fit well into the GCC table based model.
29192         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
29193         exception data objects. We don't it and it would conflict with the other
29194         external symbol we have to generate for such exceptions.
29195
29196         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
29197         the special code for VMS exceptions, since these are now represented
29198         as regular exceptions objects.
29199
29200 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29201
29202         * decl.c (debug_no_type_hash): Remove.
29203         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
29204         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
29205
29206 2004-03-19  Laurent Guerby  <laurent@guerby.net>
29207
29208         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
29209         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
29210
29211 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29212
29213         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
29214         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
29215         (TYPE_RM_SIZE_INT): Directly use type.values.
29216         (TREE_LOOP_ID): Clean up check.
29217         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
29218         TYPE_VALUES, not TYPE_FIELDS.
29219         * trans.c (convert_with_check): Delay access of bounds of basetype
29220         until sure is numeric.
29221
29222 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
29223
29224         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
29225
29226         Code clean up:
29227         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
29228         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
29229         Specific.Set instead of direct call to e.g pthread_setspecific.
29230
29231 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
29232
29233         * adaint.c: Update comments.
29234
29235         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
29236         GNATLIB_SHARED for FreeBSD.
29237
29238 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
29239
29240         * init.c [VxWorks]: Do not fix the stack size for the environment task.
29241         When needed (stack checking) the stack size is retrieved
29242         from the VxWorks kernel.
29243
29244         * Makefile.in: Flag -nostdinc is required when building the run time
29245         for avoiding looking for files in the base compiler.
29246         Add the VxWorks specific version of the package body for
29247         System.Stack_checking.Operations (5zstchop.adb).
29248
29249         * Make-lang.in: Add the object file for
29250         System.Stack_Checking.Operations.
29251
29252         * Makefile.rtl: Add object file for the package
29253         System.Stack_Checking.Operations.
29254
29255         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
29256
29257         * s-stache.ads, s-stache.adb: Move the operations related to stack
29258         checking from this package to package System.Stack_Checking.Operations.
29259         This way, stack checking operations are only linked in the final
29260         executable when using the -fstack-check flag.
29261
29262 2004-03-18  Doug Rupp  <rupp@gnat.com>
29263
29264         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
29265         Reorganize ifeq's.
29266
29267         * 5qsystem.ads, 5xcrtl.ads: New files.
29268
29269 2004-03-18  Vincent Celier  <celier@gnat.com>
29270
29271         * prj.adb (Reset): Reset hash table Files_Htable
29272
29273         * prj-env.adb (Source_Paths, Object_Paths): New tables.
29274         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
29275         the procedures Add_To_Path_File.
29276         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
29277         making sure that each directory is present only once and, for object
29278         dirs, when a directory already present is added, the duplicate is
29279         removed and the directory is always put as the last in the table.
29280         Write the path files at the end of these accumulations.
29281
29282         * prj-nmsc.adb (Record_Source): Add source file name in hash table
29283         Files_Htable for all sources.
29284
29285         * prj-proc.adb (Process): Remove restrictions between not directly
29286         related extending projects.
29287
29288 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
29289
29290         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
29291         (Find_Sources): Minor speed optimization.
29292
29293         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
29294         parameter Trusted_Mode.
29295
29296 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
29297
29298         * scn.adb (Determine_License): Take into account a degenerated case
29299         when the source contains only comments.
29300
29301 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
29302
29303         * sem_warn.adb (Check_References): For a warning on a selected
29304         component that does not come from source, locate an uninitialized
29305         component of the record type to produce a more precise error message.
29306
29307 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
29308
29309         * 3zsoccon.ads: Fix multicast options.
29310
29311         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
29312         in the spec.
29313
29314 2004-03-15  Robert Dewar  <dewar@gnat.com>
29315
29316         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
29317         pragma used for a private type.
29318
29319         * lib-xref.adb (Generate_Reference): Do not generate warning if
29320         reference is in a different unit from the pragma Unreferenced.
29321
29322         * 5vtpopde.adb: Minor reformatting
29323         Fix casing of To_Task_ID
29324
29325         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
29326         flag if we have an unchecked conversion to an access type in the same
29327         unit.
29328
29329 2004-03-15  Geert Bosch  <bosch@gnat.com>
29330
29331         * a-ngcoty.adb (Modulus): In alternate formula for large real or
29332         imaginary parts, use Double precision throughout.
29333
29334         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
29335         we want to be able to compile run-time with -gnata for testing, but
29336         this may also be instantiated in user code that is compiled with -gnata.
29337
29338 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
29339
29340         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
29341         codes. Having a separate type for this is useful to enforce consistency
29342         throughout the various run-time units.
29343         (Exception_Data): Use Exception_Code for Import_Code.
29344
29345         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
29346         Natural and Integer in various places.
29347         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
29348         with the severity bits masked off.
29349         (Register_VMS_Exception): Handle the additional exception data pointer
29350         argument.
29351
29352         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
29353         component, now reflected by an exported accessor.
29354         (is_handled_by): New routine to compute whether the propagated
29355         occurrence matches some handler choice specification. Extracted out of
29356         get_action_description_for, and expanded to take care of the VMS
29357         specifities.
29358         (get_action_description_for): Use is_handled_by instead of an explicit
29359         complex condition to decide if the current choice at hand catches the
29360         propagated occurrence.
29361
29362         * raise.h (Exception_Code): New type for C.
29363
29364         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
29365         System.Standard_Library.Exception_Code, to allow references from the
29366         pragma import/export expander.
29367
29368         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
29369         New accessors to allow easy access to GNAT exception data
29370         characteristics.
29371         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
29372         redundant Handled_By_Others component, helper for the personality
29373         routine which will now be able to call the appropriate exception data
29374         accessor instead.
29375
29376         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
29377         component of Standard_Exception_Type to be the closest possible to
29378         Exception_Code in System.Standard_Library, that we cannot get at this
29379         point. Expand a ??? comment to notify that this type node should
29380         probably be rewritten later on.
29381
29382         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
29383         registration call to include a pointer to the exception object in the
29384         arguments.
29385
29386         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
29387         instead of int and explicit bitmasks.
29388
29389 2004-03-15  Vincent Celier  <celier@gnat.com>
29390
29391         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
29392         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
29393
29394         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
29395         longer needed now that it is in the spec of
29396         System.Tasking.Task_Attributes.
29397
29398         * adaint.h, adaint.c: (__gnat_create_output_file): New function
29399
29400         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
29401
29402         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
29403
29404         * make.adb (Gnatmake): Do not check the executable suffix; it is being
29405         taken care of in Scan_Make_Arg.
29406         (Scan_Make_Arg): Add the executable suffix only if the argument
29407         following -o, in canonical case, does not end with the executable
29408         suffix.  When in verbose mode and executable file name does not end
29409         with executable suffix, output the executable name, in canonical case.
29410
29411         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
29412         to avoid warnings when instantiating Ada.Task_Attributes.
29413         Minor reformating.
29414
29415         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
29416         in the correct order.
29417
29418         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
29419         redirect standard output and error to a file for the invocation of the
29420         compiler, then read the file.
29421
29422         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
29423         directory, instead of the Value.
29424         (Find_Source_Dirs): Remove useless code & comments.
29425
29426 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
29427
29428         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
29429         tagged type is inherited, and the parent operation is not frozen yet,
29430         force generation of a freeze node for the inherited operation, so the
29431         corresponding dispatch entry is properly initialized.
29432         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
29433         when looking for user-defined equality operation.
29434
29435         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
29436         boolean when locating primitive equality of tagged component.
29437
29438         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
29439         bit-aligned field and the right-hand side a string literal, introduce
29440         a temporary before expanding assignment into a loop.
29441
29442         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
29443         priority in full, to ensure that any expanded subepxressions of it are
29444         elaborated in the scope of the init_proc.
29445
29446         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
29447         after object declaration, skipping over code that may have been
29448         generated for validity checks.
29449
29450         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
29451         discriminants, ignore the known discriminants of its full view, if
29452         any, to check legality.
29453
29454         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
29455         component if type has unknown discriminants.
29456         (Analyze_Private_Extension_Declaration): Discriminant constraint is
29457         null if type has unknown discriminants.
29458
29459         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
29460         for end label when present.
29461
29462         * s-fileio.adb (Open): When called with a C_Stream, use given name for
29463         temporary file, rather than an empty string.
29464
29465 2004-03-15  Ed Falis  <falis@gnat.com>
29466
29467         * s-thread.adb: Removed, no longer used.
29468
29469 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29470
29471         * decl.c (target.h): Now include.
29472         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
29473         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
29474         (validate_size): For POINTER_TYPE, get smallest size permitted on
29475         machine.
29476
29477         * fe.h: Sort Einfo decls and add Set_Mechanism.
29478
29479         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
29480         (ada/decl.o): Depends on target.h.
29481
29482         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
29483         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
29484
29485 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
29486
29487         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
29488
29489         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
29490         Insert_Dereference_Action when rewriting an implicit dereference into
29491         an explicit one, this will be taken care of during expansion of the
29492         explicit dereference.
29493         (Expand_N_Slice): Same. Always do the rewriting, even for the case
29494         of non-packed slices, since the dereference action generated by
29495         expansion of the explicit dereference is needed in any case.
29496         (Expand_N_Selected_Component): When rewriting an implicit dereference,
29497         analyze and resolve the rewritten explicit dereference so it is seen
29498         by the expander.
29499         (Insert_Dereference_Action): This procedure is now called only for the
29500         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
29501         dereferences that do not come from source (including explicit
29502         dereferences resulting from rewriting implicit ones), but do not
29503         recursively insert a check for the dereference nodes contained within
29504         the check.
29505         (Insert_Dereference_Action): Clarify and correct comment.
29506
29507 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
29508
29509         PR ada/14131
29510         Move language detection to the top level.
29511         * config-lang.in: Build by default.
29512
29513 2004-03-05  Robert Dewar  <dewar@gnat.com>
29514
29515         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
29516
29517         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
29518         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
29519         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
29520         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
29521         unchecked conversion to spec to avoid warnings.
29522
29523         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
29524         to Task_ID
29525
29526         * 7stpopsp.adb: Correct casing in To_Task_ID call
29527
29528         * a-strsea.ads, a-strsea.adb: Minor reformatting
29529
29530         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
29531
29532         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
29533         Adjust Max_Msg_Length to be clearly large enough.
29534
29535         * fe.h: Define In_Same_Source_Unit
29536
29537         * osint.adb: Add pragma Warnings Off to suppress warnings
29538         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
29539         aliasing warnings.
29540
29541         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
29542
29543         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
29544
29545         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
29546
29547         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
29548
29549         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
29550
29551         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
29552         node. We now do generate them for gcc back end.
29553
29554         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
29555         warning.
29556
29557         * sinput-c.adb: Fix bad name in header.
29558         Add pragma Warnings Off to suppress aliasing warning.
29559
29560         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
29561
29562         * snames.h, snames.ads, snames.adb: Add entry for pragma
29563         No_Strict_Aliasing.
29564
29565 2004-03-05  Vincent Celier  <celier@gnat.com>
29566
29567         * prj-com.ads: Add hash table Files_Htable to check when a file name
29568         is already a source of another project.
29569
29570         * prj-nmsc.adb (Record_Source): Before recording a new source, check
29571         if its file name is not already a source of another project. Report an
29572         error if it is.
29573
29574         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
29575         source file name, call gnatpp with all the sources of the main project.
29576
29577         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
29578         of file names.
29579
29580         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
29581         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
29582         /RUNTIME_SYSTEM=, converted to --RTS=
29583         /NOTABS, converted to -notabs
29584
29585 2004-03-05  Pascal Obry  <obry@gnat.com>
29586
29587         * make.adb: Minor reformatting.
29588
29589 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
29590
29591         Part of implemention of AI-262.
29592         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
29593
29594         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
29595         procedure.
29596
29597         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
29598         when component type is a partially constrained class-wide subtype.
29599         (Constrain_Discriminated_Type): If parent type has unknown
29600         discriminants, a constraint is illegal, even if full view has
29601         discriminants.
29602         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
29603         with unknown discriminants whose full view is a discriminated record.
29604
29605         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
29606         flag, to handle properly derivations of tagged types with unknown
29607         discriminants.
29608         (Analyze_Package_Spec, Analyze_Package_Body): Install
29609         Private_With_Clauses before analyzing private part or body.
29610
29611         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
29612         Has_Discriminants can be true for a given type (documentation).
29613
29614 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
29615
29616         * s-restri.ads: Fix license (GPL->GMGPL).
29617
29618         * s-tassta.adb: Minor reformatting.
29619
29620         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
29621         by calls to Exit_One_ATC_Level, since additional clean up is performed
29622         by this function.
29623
29624         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
29625         by calls to Exit_One_ATC_Level, since additional clean up is performed
29626         by this function.
29627
29628 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29629
29630         * trans.c: Reflect GCC changes to fix bootstrap problem.
29631         Add warning for suspicious aliasing unchecked conversion.
29632
29633 2004-03-05  GNAT Script  <nobody@gnat.com>
29634
29635         * Make-lang.in: Makefile automatically updated
29636
29637 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
29638
29639         * ali.adb (Read_Instantiation_Instance): Do not modify the
29640         current_file_num when reading information about instantiations, since
29641         this corrupts files in later references.
29642
29643 2004-03-02  Vincent Celier  <celier@gnat.com>
29644
29645         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
29646         before checking if it is read-only.
29647
29648         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
29649         of SRC_DIRS and eliminate duplicates.
29650
29651         * gprcmd.adb: Replace command "path" with command "path_sep" to return
29652         the path separator.
29653         (Usage): Document path_sep
29654
29655         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
29656         C++ compiler. No need for a script.
29657         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
29658         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
29659         subst.
29660
29661         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
29662         where there are Ada sources.
29663         (Set_Ada_Paths): Only add to the include path the source dirs of project
29664         with Ada sources.
29665         (Add_To_Path): Add the Display_Values of the directories, not their
29666         Values.
29667
29668         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
29669         data.
29670
29671         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
29672         is not No_Name.
29673         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
29674         Value is canonicalized.
29675         (Language_Independent_Check): Do not copy Value to Display_Value when
29676         canonicalizing Value.
29677
29678         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
29679         path to find limited with cycles.
29680         (Parse_Single_Project): Use canonical cased path to find the end of a
29681         with cycle.
29682
29683 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
29684
29685         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
29686         and not a child unit.
29687
29688         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
29689         appear in a with_clause.
29690
29691         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
29692         only happen in type_annotate mode, do not try to elaborate it.
29693
29694         * exp_util.adb (Force_Evaluation): If expression is a selected
29695         component on the left of an assignment, use a renaming rather than a
29696         temporary to remove side effects.
29697
29698         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
29699         inlined instance body, which is analyzed before the end of the
29700         enclosing scope.
29701
29702 2004-03-02  Robert Dewar  <dewar@gnat.com>
29703
29704         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
29705         sem_ch4.adb: Use new feature for substitution of keywords in VMS
29706
29707         * errout.ads, errout.adb: Implement new circuit for substitution of
29708         keywords in VMS.
29709
29710         * sem_case.adb (Analyze_Choices): Place message properly when case is
29711         a subtype reference rather than an explicit range.
29712
29713         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
29714
29715 2004-03-02  Doug Rupp  <rupp@gnat.com>
29716
29717         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
29718
29719 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
29720
29721         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
29722
29723 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29724
29725         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
29726         BLKmode bitfield.
29727
29728 2004-02-25  Robert Dewar  <dewar@gnat.com>
29729
29730         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
29731         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
29732         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
29733         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
29734         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
29735         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
29736         the defining instance of the type to avoid aliasing problems.
29737         Fix copyright header.  Fix bad comments in package header.
29738
29739         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
29740
29741 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
29742
29743         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
29744         rewritten as references when aliased through an address clause.
29745
29746         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
29747         whether call can be interpreted as an indirect call to the result of a
29748         parameterless function call returning an access subprogram.
29749
29750 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
29751
29752         Code clean up:
29753         * exp_ch7.adb (Make_Clean): Remove generation of calls to
29754         Unlock[_Entries], since this is now done by Service_Entries directly.
29755
29756         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
29757
29758         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
29759         Requeue_Call for better code readability. Change spec and update calls:
29760         PO_Service_Entries now unlock the PO on exit.
29761         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
29762         PO_Service_Entries.
29763
29764         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
29765
29766         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
29767
29768 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
29769
29770         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
29771         protected subprogram call and analyzing the result of such expanding
29772         in case when the called protected subprogram is eliminated.
29773
29774         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
29775         names.
29776
29777 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
29778
29779         * Makefile.in: Clean ups.
29780
29781 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
29782
29783         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
29784         protected operations if original subprogram is flagged as eliminated.
29785         (Expand_N_Subprogram_Body): For a protected operation, create
29786         discriminals for next operation before checking whether the operation
29787         is eliminated.
29788
29789         * exp_ch9.adb (Expand_N_Protected_Body,
29790         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
29791         for internal protected operations if the original subprogram is
29792         eliminated.
29793
29794         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
29795         declared in a single protected object.
29796
29797 2004-02-23  Vincent Celier  <celier@gnat.com>
29798
29799         * prj-attr.adb: Make attribute Builder'Executable an associative array,
29800         case insensitive if file names are case insensitive, instead of a
29801         standard associative array.
29802
29803         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
29804         them as case insensitive on platforms where the file names are case
29805         sensitive.
29806
29807         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
29808         project file has already been parsed that canonical path are compared.
29809
29810 2004-02-23  Robert Dewar  <dewar@gnat.com>
29811
29812         * sinput-c.ads: Correct bad unit title in header
29813
29814         * freeze.adb: Minor reformatting
29815
29816 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29817
29818         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
29819         nonaddressable COMPONENT_REF that is removing padding that we are
29820         taking the address of, take the address of the padded record instead
29821         if item is variable size.
29822
29823 2004-02-20  Robert Dewar  <dewar@gnat.com>
29824
29825         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
29826
29827 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
29828
29829         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
29830         itype references for the constrained designated type of a component
29831         whose base type is already frozen.
29832
29833 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
29834
29835         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
29836         avoid GCC warnings.
29837
29838 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
29839
29840         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
29841         identifier for a phantom package that rewrites the formal package
29842         declaration with a box. The Add semantic decorations for the defining
29843         identifier from the original node (that represents the formal package).
29844
29845 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
29846
29847         * Make-lang.in (ada/stamp-sdefault): Use the top level
29848         move-if-change.
29849
29850 2004-02-19  Richard Henderson  <rth@redhat.com>
29851
29852         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
29853
29854 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
29855
29856         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
29857         Scan_ALI can be used for multiple ALI files without reinitializing
29858         between calls.
29859
29860 2004-02-18  Robert Dewar  <dewar@gnat.com>
29861
29862         * debug.adb: Minor reformatting.
29863
29864 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29865
29866         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
29867         to zero if there is an address clause.
29868
29869 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
29870
29871         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
29872
29873 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
29874
29875         * layout.adb (Layout_Component_List): Revise generation of call to
29876         discriminant-checking function to pass selections of all of the type's
29877         discriminants rather than just the variant-controlling discriminant.
29878
29879 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
29880
29881         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
29882         fail in the current setup and triggers spurious system error messages.
29883         Pretend it occurred and failed instead.
29884
29885 2004-02-18  Vincent Celier  <celier@gnat.com>
29886
29887         * bld.adb: Mark FLDFLAGS as saved
29888         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
29889         it is not the root project.  Put each directory to be
29890         extended between double quotes to prevent it to be expanded on Windows.
29891         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
29892         the project file. Set them back to their initial values if they have not
29893         been set in the project file.
29894
29895         * gprcmd.adb: (Gprdebug, Debug): New global variables
29896         (Display_Command): New procedure
29897         (Usage): Document new command "linkopts"
29898         Call Display_Command when env var GPRDEBUG has the value "TRUE"
29899         Implement new command "linkopts"
29900         Remove quotes that may be around arguments for "extend"
29901         Always call Normalize_Pathname with arguments formatted for the platform
29902
29903         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
29904         Change @echo to @$(display) in target clean to be able to clean silently
29905
29906         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
29907
29908         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
29909         canonical case.
29910
29911         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
29912         = Extending_All when current project is an extending all project.
29913
29914         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
29915         set to True only for LINK command, after Unix switch -o.
29916         (Process_Arguments): Set Output_File_Expected to True for LINK command
29917         after Unix switch -o. When Output_File_Expected is True, never add an
29918         extension to a file name.
29919
29920         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
29921         option file name, only to the --for-linker= switch.
29922         (Option_File_Name): If option file name do not end with ".opt", append
29923         "/OPTIONS".
29924
29925 2004-02-18  GNAT Script  <nobody@gnat.com>
29926
29927         * Make-lang.in: Makefile automatically updated
29928
29929 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
29930
29931         * Make-lang.in (stamp-sdefault): Do not depend on
29932         move-if-change.
29933
29934 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
29935
29936         * config-lang.in: Disable Ada by default until probe logic for
29937         a bootstrap Ada compiler can be moved to the top level configure
29938         script.
29939
29940 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
29941
29942         * decl.c (components_to_record): Don't claim that the internal fields
29943         we make to hold the variant parts are semantically addressable, because
29944         they are not.
29945
29946         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
29947         adjust the comment describing the modular type form when we can use it.
29948         (Install_PAT): Account for the Esiz renaming.
29949
29950         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
29951         sc_onstack context indication before raising the exception to which
29952         the signal is mapped. Allows better handling of later signals possibly
29953         triggered by the resumed user code if the exception is handled.
29954
29955 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
29956
29957         * 5zinit.adb: Removed, no longer used.
29958
29959 2004-02-12  Robert Dewar  <dewar@gnat.com>
29960
29961         * ali.adb: Remove separating space between parameters on R line. Makes
29962         format consistent with format used by the binder for Set_Globals call.
29963
29964         * atree.ads, atree.adb: Minor reformatting (new function header format)
29965
29966         * bindgen.adb: Add Run-Time Globals documentation section containing
29967         detailed documentation of the globals passed from the binder file to
29968         the run time.
29969
29970         * gnatls.adb: Minor reformatting
29971
29972         * init.c (__gnat_set_globals): Add note pointing to documentation in
29973         bindgen.
29974
29975         * lib-writ.ads, lib-writ.adb: Remove separating space between
29976         parameters on R line.
29977         Makes format consistent with format used by the binder for Set_Globals
29978         call.
29979
29980         * osint.ads: Add 2004 to copyright notice
29981         Minor reformatting
29982
29983         * snames.ads: Correct capitalization of FIFO_Within_Priorities
29984         Noticed during code reading, documentation issue only
29985
29986         * usage.adb: Remove junk line for obsolete C switch
29987         Noticed during code reading
29988
29989 2004-02-12  Vincent Celier  <celier@gnat.com>
29990
29991         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
29992         extend for each directory, so that multiple /** directories are
29993         extended individually.
29994         (Recursive_Process): Set the default for LANGUAGES to ada
29995
29996         * gprcmd.adb: Define new command "ignore", to do nothing.
29997         Implement new comment "path".
29998
29999         * Makefile.generic: Suppress output when SILENT is set
30000         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
30001         used, so that the correct compiler is invoked.
30002         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
30003         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
30004
30005 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
30006
30007         * Makefile.in: Clean ups and remove obsolete targets.
30008
30009 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
30010
30011         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
30012         predicate declared in exp_util.
30013
30014         * exp_util.adb: Add comments.
30015
30016         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
30017         visibility before compiling context of the subunit.
30018
30019         * sem_res.adb (Check_Parameterless_Call): If the context expects a
30020         value but the name is a procedure, do not attempt to analyze as a call,
30021         in order to obtain more telling diagnostics.
30022
30023         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
30024         'Access on parameterless function calls.
30025         (Normalize_Actuals): For a parameterless function call with missing
30026         actuals, defer diagnostic until resolution of enclosing call.
30027
30028         * sem_util.adb (Wrong_Type): If the context type is an access to
30029         subprogram and the expression is a procedure name, suggest a missing
30030         'attribute.
30031
30032 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
30033             Nathanael Nerode  <neroden@gcc.gnu.org>
30034
30035         PR ada/6637
30036         PR ada/5911
30037         Merge with libada-branch:
30038         * config-lang.in: Build libada only when ada is built.
30039
30040 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
30041
30042         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
30043         for a tagged type, verify that both formals have the same type.
30044
30045         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
30046         temporary when the formal is an in-parameter and the actual a possibly
30047         unaligned slice.
30048
30049         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
30050         when expansion is disabled, to ensure proper name capture with
30051         overloaded literals.  Condition can be of any boolean type, resolve
30052         accordingly.
30053
30054         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
30055         renaming is for a formal subprogram with a default operator name, and
30056         there is a usable operator that is visible at the point of
30057         instantiation.
30058
30059 2004-02-09  Robert Dewar  <dewar@gnat.com>
30060
30061         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
30062         rewrite to ignore errors in ali files, intended to allow tools downward
30063         compatibility with new versions of ali files.
30064
30065         * ali.ads: Add new parameter Ignore_Errors
30066
30067         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
30068         duplicating the error message giving the file with restrictions.
30069
30070         * debug.adb: Add debug flag I for gnatbind
30071
30072         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
30073         operators for the case where the operator is a defining operator.
30074
30075         * exp_ch3.adb: Minor reformatting (new function spec format).
30076
30077         * exp_ch4.adb: Add comment for previous change, and make minor
30078         adjustment to loop to always check for improper loop termination.
30079         Minor reformatting throughout (new function spec format).
30080
30081         * gnatbind.adb: Implement -di debug flag for gnatbind
30082
30083         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
30084
30085         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
30086
30087         * lib-load.adb: Fix bad assertion.
30088         Found by testing and code reading.
30089         Minor reformatting.
30090
30091         * lib-load.ads: Minor reformatting.
30092
30093         * lib-writ.adb: There is only one R line now.
30094
30095         * lib-writ.ads: Add documentation on making downward compatible changes
30096         to ali files so old tools work with new ali files.
30097         There is only one R line now.
30098         Add documentation on format incompatibilities (with special GPS note)
30099
30100         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
30101
30102         * par-load.adb: Minor reformatting
30103
30104         * sem_ch8.adb: Fix to error message from last update
30105         Minor reformatting and restructuring of code from last update
30106
30107         * par-prag.adb, snames.adb, snames.ads, snames.h,
30108         sem_prag.adb: Implement pragma Profile.
30109
30110         * stylesw.adb: Implement -gnatyN switch to turn off all style check
30111         options.
30112
30113         * usage.adb: Add line for -gnatyN switch
30114
30115         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
30116
30117 2004-02-09  Albert Lee  <lee@gnat.com>
30118
30119         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
30120
30121 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
30122
30123         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
30124         slices.
30125
30126         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
30127         is nested in an instance that is not frozen yet, to avoid
30128         order-of-elaboration problems in gigi.
30129
30130         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
30131         body the attribute is legal.
30132
30133 2004-02-09  Robert Dewar  <dewar@gnat.com>
30134
30135         * s-rident.ads: Minor comment correction
30136
30137         * targparm.adb: Remove dependence on uintp completely. There was
30138         always a bug in Make in that it called Targparm before initializing
30139         the Uint package. The old code appeared to get away with this, but
30140         the new code did not! This caused an assertion error in gnatmake.
30141
30142         * targparm.ads: Fix bad comment, restriction pragmas with parameters
30143         are indeed fully supported.
30144
30145 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
30146
30147         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
30148
30149 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
30150
30151         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
30152         with targetm.calls.promote_prototypes.
30153
30154 2004-02-04  Robert Dewar  <dewar@gnat.com>
30155
30156         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
30157         ali.ads, gprcmd.adb: Minor reformatting
30158
30159         * bindgen.adb: Output restrictions string for new style restrictions
30160         handling
30161
30162         * impunit.adb: Add s-rident.ads (System.Rident) and
30163         s-restri (System.Restrictions)
30164
30165         * lib-writ.adb: Fix bug in writing restrictions string (last few
30166         entries wrong)
30167
30168         * s-restri.ads, s-restri.adb: Change name Restrictions to
30169         Run_Time_Restrictions to avoid conflict with package name.
30170         Add circuit to read and acquire run time restrictions.
30171
30172 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
30173
30174         * restrict.ads, restrict.adb: Use the new restriction
30175         No_Task_Attributes_Package instead of the old No_Task_Attributes.
30176
30177         * sem_prag.adb: No_Task_Attributes is a synonym of
30178         No_Task_Attributes_Package.
30179
30180         * snames.ads, snames.adb: New entry for proper handling of
30181         No_Task_Attributes.
30182
30183         * s-rident.ads: Adding restriction No_Task_Attributes_Package
30184         (AI-00249) that supersedes the GNAT specific restriction
30185         No_Task_Attributes.
30186
30187 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
30188
30189         * sem_prag.adb:
30190         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
30191          body, an identifier may be wrapped in an unchecked conversion.
30192
30193 2004-02-04  Vincent Celier  <celier@gnat.com>
30194
30195         * lib-writ.ads: Comment update for the W lines
30196
30197         * bld.adb: (Expression): An empty string list is static
30198
30199         * fname-uf.adb: Minor comment update
30200
30201         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
30202
30203         * gnatbind.adb: Initialize Cumulative_Restrictions with the
30204         restrictions on the target.
30205
30206 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
30207
30208         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
30209         gen_rtx.
30210
30211 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
30212
30213         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
30214
30215 2004-02-02  Vincent Celier  <celier@gnat.com>
30216
30217         * gprcmd.adb (Check_Args): If condition is false, print the invoked
30218         comment before the usage.
30219         Gprcmd: Fail when command is not recognized.
30220         (Usage): Document command "prefix"
30221
30222         * g-md5.adb (Digest): Process last block.
30223         (Update): Do not process last block. Store remaining characters and
30224         length in Context.
30225
30226         * g-md5.ads (Update): Document that several call to update are
30227         equivalent to one call with the concatenated string.
30228         (Context): Add fields to allow new Update behaviour.
30229
30230         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
30231         defaulted to False.
30232         When May_Fail is True and no existing file can be found, return No_File.
30233
30234         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
30235         functions.
30236
30237         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
30238         spec file name instead on the W line.
30239
30240 2004-02-02  Robert Dewar  <dewar@gnat.com>
30241
30242         * ali.adb: Read and acquire info from new format restrictions lines
30243
30244         * bcheck.adb: Add circuits for checking restrictions with parameters
30245
30246         * bindgen.adb: Output dummy restrictions data
30247         To be changed later
30248
30249         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
30250         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
30251         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
30252         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
30253         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
30254
30255         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
30256         the warning message on access to possibly uninitialized variable S)
30257         Minor changes for new restrictions handling.
30258
30259         * gnatbind.adb: Minor reformatting
30260         Minor changes for new restrictions handling
30261         Move circuit for -r processing here from bcheck (cleaner)
30262
30263         * gnatcmd.adb, gnatlink.adb: Minor reformatting
30264
30265         * lib-writ.adb: Output new format restrictions lines
30266
30267         * lib-writ.ads: Document new R format lines for new restrictions
30268         handling.
30269
30270         * s-restri.ads/adb: New files
30271
30272         * Makefile.rtl: Add entry for s-restri.ads/adb
30273
30274         * par-ch3.adb: Fix bad error messages starting with upper case letter
30275         Minor reformatting
30276
30277         * restrict.adb: Major rewrite throughout for new restrictions handling
30278         Major point is to handle restrictions with parameters
30279
30280         * restrict.ads: Major changes in interface to handle restrictions with
30281         parameters. Also generally simplifies setting of restrictions.
30282
30283         * snames.ads/adb: New entry for proper handling of No_Requeue
30284
30285         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
30286         restriction counting.
30287         Other minor changes for new restrictions handling
30288
30289         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
30290         Restriction_Warnings now allows full parameter notation
30291         Major rewrite of Restrictions for new restrictions handling
30292
30293 2004-02-02  Javier Miranda  <miranda@gnat.com>
30294
30295         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
30296         syntax rule for object renaming declarations.
30297         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
30298         component definitions.
30299
30300         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
30301         components.
30302         (Array_Type_Declaration): Give support to access components. In addition
30303         it was also modified to reflect the name of the object in anonymous
30304         array types. The old code did not take into account that it is possible
30305         to have an unconstrained anonymous array with an initial value.
30306         (Check_Or_Process_Discriminants): Allow access discriminant in
30307         non-limited types.
30308         (Process_Discriminants): Allow access discriminant in non-limited types
30309         Initialize the new Access_Definition field in N_Object_Renaming_Decl
30310         node.  Change Ada0Y to Ada 0Y in comments
30311
30312         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
30313         equality operators.
30314         Change Ada0Y to Ada 0Y in comments
30315
30316         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
30317         renamings Change Ada0Y to Ada 0Y in comments
30318
30319         * sem_type.adb (Find_Unique_Type): Give support to the equality
30320         operators for universal access types
30321         Change Ada0Y to Ada 0Y in comments
30322
30323         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
30324
30325         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
30326         field.
30327         (N_Object_Renaming_Declaration): Addition of Access_Definition field
30328         Change Ada0Y to Ada 0Y in comments
30329
30330         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
30331         component definition and object renaming nodes
30332         Change Ada0Y to Ada 0Y in comments
30333
30334 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
30335
30336         * restrict.adb: Use the new restriction identifier
30337         No_Requeue_Statements instead of the old No_Requeue for defining the
30338         restricted profile.
30339
30340         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
30341         No_Requeue_Statements.
30342
30343         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
30344         that supersedes the GNAT specific restriction No_Requeue. The later is
30345         kept for backward compatibility.
30346
30347 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
30348
30349         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
30350         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
30351         pragma and fix incorrect ones.
30352
30353         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
30354         warning if the pragma is redundant.
30355
30356 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
30357
30358         * 5staprop.adb: Add missing 'constant' keywords.
30359
30360         * Makefile.in: use consistent value for SYMLIB on
30361         platforms where libaddr2line is supported.
30362
30363 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30364
30365         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
30366         annotating types.
30367
30368 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
30369
30370         * init.c (__gnat_install_handler): Setup an alternate stack for signal
30371         handlers in the environment thread. This allows proper propagation of
30372         an exception on stack overflows in this thread even when the builtin
30373         ABI stack-checking scheme is used without support for a stack reserve
30374         region.
30375
30376         * utils.c (create_field_decl): Augment the head comment about bitfield
30377         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
30378         here, because the former is not accurate enough at this point.
30379         Let finish_record_type decide instead.
30380         Don't make a bitfield if the field is to be addressable.
30381         Always set a size for the field if the record is packed, to ensure the
30382         checks for bitfield creation are triggered.
30383         (finish_record_type): During last pass over the fields, clear
30384         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
30385         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
30386         from DECL_BIT_FIELD.
30387
30388 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
30389
30390         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
30391         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
30392         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
30393
30394 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
30395
30396         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
30397
30398         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
30399         (ZCX_By_Default): Likewise.
30400         (Front_End_ZCX_Support): Likewise.
30401
30402         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
30403         (Initialize_Lock): Mark Level unreferenced.
30404         (Sleep): Mark Reason unreferenced.
30405         (Timed_Sleep): Likewise.
30406         (Wakeup): Likewise.
30407         (Exit_Task): Use Result.
30408         (Check_No_Locks): Mark Self_ID unreferenced.
30409
30410         * 5gtasinf.adb (New_Sproc): Make Attr constant.
30411         (Bound_Thread_Attributes): Make Sproc constant.
30412         (New_Bound_Thread_Attributes): Likewise.
30413
30414 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
30415
30416         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
30417         one-dimensional array an slice assignments, when component type is
30418         controlled.
30419
30420         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
30421         component type is controlled, and control_actions are in effect, use
30422         TSS procedure rather than generating inline code.
30423
30424         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
30425         arrays with controlled components.
30426
30427 2004-01-26  Vincent Celier  <celier@gnat.com>
30428
30429         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
30430         command line for the non VMS case.
30431
30432         * gnatlink.adb (Process_Binder_File): When building object file, if
30433         GNU linker is used, put all object paths between quotes, to prevent ld
30434         error when there are unusual characters (such as '!') in the paths.
30435
30436         * Makefile.generic: When there are sources in Ada and the main is in
30437         C/C++, invoke gnatmake with -B, instead of -z.
30438
30439         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
30440         from VMS_Conversion.
30441         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
30442         specification of argument file on the command line.
30443
30444 2004-01-26  Bernard Banner  <banner@gnat.com>
30445
30446         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
30447
30448 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
30449
30450         * snames.adb: Update copyright notice.
30451         Add info on slice assignment for controlled arrays.
30452
30453 2004-01-23  Robert Dewar  <dewar@gnat.com>
30454
30455         * exp_aggr.adb: Minor reformatting
30456
30457         * exp_ch9.adb: Minor code clean up
30458         Minor reformatting
30459         Fix bad character in comment
30460
30461         PR ada/13471
30462         * targparm.adb (Get_Target_Parameters): Give clean abort error on
30463         unexpected end of file, along with more detailed message.
30464
30465 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30466
30467         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
30468         PAT.
30469
30470         * decl.c (copy_alias_set): New function.
30471         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
30472
30473 2004-01-23  Doug Rupp  <rupp@gnat.com>
30474
30475         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
30476         lib$${file} in case subsequent character is not a separator.
30477
30478 2004-01-23  Vincent Celier  <celier@gnat.com>
30479
30480         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
30481         when the GCC version is at least 3.
30482
30483         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
30484         Remove all "Opt.", to prepare for opt split
30485
30486         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
30487         Extends_All. Set to True when the project parsed is an extending all
30488         project. Fails for importing an extending all project only when the
30489         imported project is an extending all project.
30490         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
30491         depending on the value of Extends_All returned.
30492
30493         * prj-proc.adb (Process): Check that no project shares its object
30494         directory with a project that extends it, directly or indirectly,
30495         including a virtual project.
30496         Check that no project extended by another project shares its object
30497         directory with another also extended project.
30498
30499         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
30500         Kind = N_With_Clause
30501
30502         * prj-tree.ads: Minor reformatting
30503         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
30504
30505 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
30506
30507         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
30508         applies to a type with an incomplete view, use full view in Name of
30509         clause, for consistency with uses of Get_Attribute_Definition_Clause.
30510
30511 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
30512
30513         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
30514         SCHED_RR, since other values are not supported by this policy.
30515         (Initialize): Move initialization of mutex attribute to package
30516         elaboration, to prevent early access to this variable.
30517
30518         * Makefile.in: Remove mention of Makefile.adalib, unused.
30519
30520         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
30521         1ssecsta.ads: Removed, unused.
30522
30523 2004-01-21  Javier Miranda  <miranda@gnat.com>
30524
30525         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
30526         entity if already built in the current scope.
30527
30528         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
30529         reminder in internal scopes. Required for nested limited aggregates.
30530
30531 2004-01-21  Doug Rupp  <rupp@gnat.com>
30532
30533         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
30534         VMS. Replace all occurences of libgnat- and libgnarl- with
30535         libgnat$(hyphen) and libgnarl$(hyphen).
30536         Fixed shared library build problem on VMS.
30537
30538 2004-01-21  Robert Dewar  <dewar@gnat.com>
30539
30540         * mlib-prj.adb: Minor reformatting
30541
30542 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
30543
30544         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
30545         'constant' keywords for declaration of pointers that are not modified.
30546
30547         * exp_pakd.adb: Fix English in comment.
30548
30549 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
30550
30551         PR ada/10889
30552         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
30553         copy all attributes of the parent, including the foreign language
30554         convention.
30555
30556 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
30557
30558         PR ada/10565
30559         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
30560         for 'delay until' statement.
30561
30562 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
30563
30564         * Make-lang.in: Replace $(docdir) with doc.
30565         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
30566         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
30567         to use consistent MAKEINFO rule.
30568         (ada.man, ada.srcman): Dummy entry.
30569         (ADA_INFOFILES): Define.
30570         (ada.info, ada.srcinfo): New rules.
30571
30572 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
30573
30574         * utils.c: Update copyright notice, missed in previous change.
30575
30576 2004-01-19  Vincent Celier  <celier@gnat.com>
30577
30578         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
30579         args if Bind is True. Set First_ALI, if not already done.
30580         (Build_Library): For Stand Alone Libraries, extract from one ALI file
30581         an eventual --RTS switch, for gnatbind, and all backend switches +
30582         --RTS, for linking.
30583
30584 2004-01-19  Robert Dewar  <dewar@gnat.com>
30585
30586         * sem_attr.adb, memtrack.adb: Minor reformatting
30587
30588 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
30589
30590         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
30591         that rename enumeration literals. This is properly done in sem_eval.
30592
30593         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
30594         to functions that rename enumeration literals.
30595
30596         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
30597         functions that rename enumeration literals.
30598
30599 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
30600
30601         * Make-lang.in (utils.o): Depend on target.h.
30602         * utils.c: Include target.h.
30603         (process_attributes): Use targetm.have_named_sections instead
30604         of ASM_OUTPUT_SECTION_NAME.
30605
30606 2004-01-16  Andreas Jaeger  <aj@suse.de>
30607
30608         * Makefile.in: Add $(DESTDIR).
30609
30610 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
30611
30612         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
30613         also when not defining if a Size clause applies. That information is
30614         not to be ignored.
30615
30616 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
30617
30618         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
30619         symbolic links for the shared gnat run time when needed.
30620
30621 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
30622
30623         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
30624         for writing, and terminate with an error message if not.
30625
30626 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
30627
30628         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
30629         warning on an access to subprogram in an instance, when the target
30630         type is declared in the same generic unit.
30631         (Eval_Attribute): If 'access is known to fail accessibility check,
30632         rewrite as a raise statement.
30633
30634 2004-01-15  GNAT Script  <nobody@gnat.com>
30635
30636         * Make-lang.in: Makefile automatically updated
30637
30638 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
30639
30640         * Make-lang.in (ada.srcextra): Dummy entry.
30641
30642 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
30643
30644         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
30645
30646 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
30647
30648         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
30649         components that are initialized with aggregates.
30650
30651 2004-01-13  Vincent Celier  <celier@gnat.com>
30652
30653         * gnatlink.adb (Process_Binder_File): To find directory of shared
30654         libgcc, if "gcc-lib" is not a subdirectory, look for the last
30655         subdirectory "lib" in the path of the shared libgnat or libgnarl.
30656
30657         * make.adb (Gnatmake): If GCC version is at least 3, link with
30658         -shared-libgcc, when there is at least one shared library project.
30659
30660         * opt.ads (GCC_Version): New integer constant.
30661
30662         * adaint.c (get_gcc_version): New function.
30663
30664 2004-01-13  Robert Dewar  <dewar@gnat.com>
30665
30666         * sem_dist.adb, sem_res.adb, sem_util.adb,
30667         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
30668         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
30669
30670 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
30671
30672         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
30673         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
30674         declarations.
30675
30676 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
30677
30678         * misc.c: Remove trailing spaces.
30679         Update copyright notice missed in previous change.
30680
30681         PR ada/13572
30682         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
30683         prefix/share/make
30684
30685         * Makefile.generic: Update copyright.
30686         Add license notice.
30687
30688         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
30689         of prefix/share/make.
30690
30691         * Makefile.prolog: Update copyright.
30692         Add license notice.
30693
30694 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
30695
30696         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
30697         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
30698         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
30699         instead of String.
30700
30701         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
30702         signature.
30703
30704 2004-01-12  Javier Miranda  <miranda@gnat.com>
30705
30706         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
30707         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
30708         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
30709         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
30710         Component_Definition node.
30711
30712 2004-01-12  Ed Falis  <falis@gnat.com>
30713
30714         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
30715
30716 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
30717
30718         * link.c: Change default libgnat kind to STATIC for FreeBSD.
30719
30720 2004-01-12  Bernard Banner  <banner@gnat.com>
30721
30722         * Makefile.in: map 86numaux to a-numaux for x86_64
30723
30724 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
30725
30726         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
30727         generated to rename a generic actual, go to the actual itself, the
30728         subtype is not a user-visible entity.
30729
30730         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
30731         part is a private subtype, reset the visibility of its full view, if
30732         any, to be consistent.
30733
30734         PR ada/13417
30735         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
30736         to use a generic package G as a formal package for another generic
30737         declared within G.
30738
30739 2004-01-12  Robert Dewar  <dewar@gnat.com>
30740
30741         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
30742
30743         * usage.adb: Remove mention of obsolete -gnatwb switch
30744         Noticed during code reading
30745
30746 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
30747
30748         * 1ssecsta.adb: Minor changes for -gnatwa warnings
30749
30750 2004-01-12  GNAT Script  <nobody@gnat.com>
30751
30752         * Make-lang.in: Makefile automatically updated
30753
30754 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
30755
30756         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
30757
30758 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
30759
30760         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
30761
30762 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
30763
30764         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
30765         Update comment and copyright date.
30766         * stamp-xgnatug: Delete.
30767
30768 2004-01-05  Robert Dewar  <dewar@gnat.com>
30769
30770         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
30771         be modified by the binder generated main program if the -D switch is
30772         used.
30773
30774         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
30775         imported functions (since now we expect this to be done for imported
30776         functions)
30777
30778         * 5vtaprop.adb: Add several ??? for sections requiring more comments
30779         Minor reformatting throughout
30780
30781         * 5zinit.adb: Minor reformatting
30782         Add 2004 to copyright date
30783         Minor changes to avoid -gnatwa warnings
30784         Correct some instances of using OR instead of OR ELSE (noted while
30785         doing reformatting)
30786
30787         * sprint.adb: Minor updates to avoid -gnatwa warnings
30788
30789         * s-secsta.ads, s-secsta.adb:
30790         (SS_Get_Max): New function to obtain high water mark for ss stack
30791         Default_Secondary_Stack is not a constant since it may be modified by
30792         the binder generated main program if the -D switch is used.
30793
30794         * switch-b.adb: New -Dnnn switch for binder
30795
30796         * switch-c.adb:
30797         Make -gnatg imply all warnings currently in -gnatwa
30798
30799         * vms_conv.adb: Minor reformatting
30800         Add 2004 to copyright notice
30801         Add 2004 to printed copyright notice
30802
30803         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
30804         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
30805         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
30806         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
30807         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
30808         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
30809         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
30810         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
30811         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
30812         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
30813         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
30814         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
30815         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
30816         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
30817         checks.adb, clean.adb, cstand.adb, einfo.ads,
30818         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
30819         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
30820         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
30821         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
30822         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
30823         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
30824         Minor reformatting and code clean ups.
30825         Minor changes to prevent -gnatwa warnings
30826
30827         * ali.adb: Minor reformatting and cleanup of code
30828         Acquire new SS indication of secondary stack use from ali files
30829
30830         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
30831         (since now we expect this to be done for imported functions)
30832
30833         * bindgen.adb: Generate call to modify default secondary stack size if
30834         -Dnnn switch given
30835
30836         * bindusg.adb: Add line for new -D switch
30837
30838         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
30839         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
30840         Add circuitry for both records and arrays to avoid gigi
30841         processing if the type involved has non-bit-aligned components
30842
30843         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
30844         N_String_Literal node always references an E_String_Literal_Subtype
30845         entity. This may not be true in the future.
30846         (Possible_Bit_Aligned_Component): Move processing of
30847         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
30848
30849         * exp_ch6.adb (Expand_Thread_Body): Pick up
30850         Default_Secondary_Stack_Size as variable so that we get value modified
30851         by possible -Dnnn binder parameter.
30852
30853         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
30854         (Type_May_Have_Bit_Aligned_Components): New function.
30855
30856         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
30857         (Type_May_Have_Bit_Aligned_Components): New function.
30858
30859         * fe.h: (Set_Identifier_Casing): Fix prototype.
30860         Add declaration for Sem_Elim.Eliminate_Error_Msg.
30861         Minor reformatting.
30862
30863         * freeze.adb (Freeze_Entity): Add RM reference to error message about
30864         importing constant atomic/volatile objects.
30865         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
30866         unless explicit Pure_Function pragma given, to avoid insidious bug of
30867         call to non-pure imported function getting eliminated.
30868
30869         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
30870         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
30871         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
30872         Add 2004 to printed copyright notice
30873
30874         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
30875         stack used.
30876
30877         * Makefile.rtl: Add entry for g-sestin.o
30878         g-sestin.ads: New file.
30879
30880         * mdll.adb: Minor changes to avoid -gnatwa warnings
30881
30882         * mlib-tgt.adb: Minor reformatting
30883
30884         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
30885         New switch Sec_Stack_Used (GNAT, GNATBIND)
30886         Make Default_Secondary_Stack_Size a variable instead of a constant,
30887         so that it can be modified by the new -Dnnn bind switch.
30888
30889         * rtsfind.adb (Load_Fail): Give full error message in configurable
30890         run-time mode if all_errors mode is set. This was not done in the case
30891         of a file not found, which was an oversight.
30892         Note if secondary stack unit is used by compiler.
30893
30894         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
30895         ineffective elaborate all pragmas on non-visible packages (this
30896         happened when a renamed subprogram was called). Now the elaborate all
30897         always goes on the package containing the renaming rather than the one
30898         containing the renamed subprogram.
30899
30900         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
30901         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
30902
30903         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
30904         has an Etype that references an E_String_Literal.
30905         (Eval_String_Literal): Avoid assumption that N_String_Literal node
30906         always references an E_String_Literal_Subtype entity. This may not
30907         be true in the future.
30908
30909         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
30910         pragma location.
30911
30912         * sem_res.adb (Resolve): Specialize msg for function name used in proc
30913         call.
30914
30915 2004-01-05  Ed Falis  <falis@gnat.com>
30916
30917         * g-debuti.adb: Replaced direct boolean operator with short-circuit
30918         form.
30919
30920 2004-01-05  Vincent Celier  <celier@gnat.com>
30921
30922         * bld.adb: Minor comment updates
30923         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
30924         of Item_Name).
30925
30926         * make.adb (Gnatmake): Special process for files to compile/check when
30927         -B is specified. Fail when there are only foreign mains in attribute
30928         Main of the project file and -B is not specified. Do not skip bind/link
30929         steps when -B is specified.
30930
30931         * makeusg.adb: Document new switch -B
30932
30933         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
30934
30935         * switch-m.adb: (Scan_Make_Switches): Process -B switch
30936
30937         * vms_data.ads: Add new GNAT PRETTY qualifier
30938         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
30939
30940 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30941
30942         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
30943         case.
30944
30945         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
30946         Set_Identifier_Casing.
30947
30948         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
30949         has size that overflows.
30950
30951 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
30952
30953         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
30954         -gnatwa warning on static condition.
30955
30956 2004-01-05  Doug Rupp  <rupp@gnat.com>
30957
30958         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
30959
30960 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
30961
30962         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
30963         all attributes, including read-only attribute.
30964
30965 2004-01-05  Pascal Obry  <obry@gnat.com>
30966
30967         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
30968         library naming scheme.
30969
30970         * mlib-prj.adb (Build_Library): Generate different names for the static
30971         or dynamic version of the GNAT runtime. This is needed to support the
30972         new shared library naming scheme.
30973         (Process_Binder_File): Add detection of shared library in binder file
30974         based on the new naming scheme.
30975
30976         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
30977         scheme for the shared runtime libraries.
30978
30979         * Makefile.in:
30980         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
30981         scheme.
30982         (install-gnatlib): Do not create symlinks for shared libraries.
30983         (gnatlib-shared-default): Idem.
30984         (gnatlib-shared-dual-win32): New target. Not used for now as the
30985         auto-import feature does not support arrays/records.
30986         (gnatlib-shared-win32): Do not create copy for the shared libraries.
30987         (gnatlib-shared-vms): Fix shared runtime libraries names.
30988
30989         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
30990         dependent runtime shared library name.
30991
30992 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
30993
30994         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
30995         than the object.
30996
30997 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
30998
30999         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
31000         protected objects when allocator has a subtype indication, not a
31001         qualified expression. Note that qualified expressions may have to be
31002         checked when limited aggregates are implemented.
31003
31004         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
31005         pure, emit warning.
31006         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
31007         subprogram is imported, remove warning.
31008
31009 2004-01-05  Geert Bosch  <bosch@gnat.com>
31010
31011         * s-poosiz.adb: Update copyright notice.
31012         (Allocate): Use Task_Lock to protect against concurrent access.
31013         (Deallocate): Likewise.
31014
31015 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
31016
31017         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
31018         comment.
31019
31020 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
31021
31022         * gnat_ug.texi: Force a CVS commit by updating copyright.
31023         * gnat_ug_vxw.texi: Regenerate.
31024         * gnat_ug_wnt.texi: Regenerate.
31025         * gnat_ug_vms.texi: Regenerate.
31026         * gnat_ug_unx.texi: Regenerate.
31027
31028 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
31029
31030         * trans.c: Remove uses of "register" specifier in
31031         declarations of local variables.
31032
31033 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
31034
31035         * stamp-xgnatug: New stamp file.
31036         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
31037         (ada/doctools/xgnatug): Add $(build_exeext).
31038         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
31039         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
31040
31041 2003-12-17  Ed Falis  <falis@gnat.com>
31042
31043         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
31044         eliminate warning.
31045
31046         * a-exextr.adb: Add context clause for
31047         Ada.Exceptions.Last_Chance_Handler.
31048
31049 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
31050
31051         * cstand.adb (Create_Standard): Change the way how the declaration of
31052         the Duration type is created (making it the same way as it is for all
31053         the other standard types).
31054
31055 2003-12-17  Robert Dewar  <dewar@gnat.com>
31056
31057         * s-crtl.ads: Fix header format
31058         Change Pure to Preelaborate
31059
31060 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
31061
31062         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
31063         the expression type only if it is declared in the current unit.
31064
31065         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
31066         are universal and already analyzed, as can occur in constrained
31067         subcomponents that depend on discriminants, when one constraint is a
31068         subtype mark.
31069
31070         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
31071         type Any_Fixed is legal as the argument of a conversion, if only one
31072         fixed-point type is in context.
31073
31074 2003-12-17  GNAT Script  <nobody@gnat.com>
31075
31076         * Make-lang.in: Makefile automatically updated
31077
31078 2003-12-15  Robert Dewar  <dewar@gnat.com>
31079
31080         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
31081         sec stack size.
31082
31083 2003-12-15  Vincent Celier  <celier@gnat.com>
31084
31085         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
31086         (Gnatchop): Do not set failure status when reporting the number of
31087         warnings.
31088
31089 2003-12-15  Doug Rupp  <rupp@gnat.com>
31090
31091         * s-ctrl.ads: New file.
31092
31093         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
31094
31095         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
31096         (GNATBIND_OBJS): Add ada/s-crtl.o.
31097
31098         * Makefile.in [VMS]: Clean up ifeq rules.
31099
31100         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
31101         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
31102         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
31103         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
31104         s-tasdeb.adb: Update copyright.
31105         Import System.CRTL.
31106         Make minor modifications to use System.CRTL declared functions instead
31107         of importing locally.
31108
31109 2003-12-15  GNAT Script  <nobody@gnat.com>
31110
31111         * Make-lang.in: Makefile automatically updated
31112
31113 2003-12-11  Ed Falis  <falis@gnat.com>
31114
31115         * 5zinit.adb: Clean up.
31116
31117         * 5zintman.adb (Notify_Exception): replaced case statement with a call
31118         to __gnat_map_signal, imported from init.c to support
31119         signal -> exception mappings that depend on the vxWorks version.
31120
31121         * init.c:
31122         Created and exported __gnat_map_signal to support signal -> exception
31123         mapping that is dependent on the VxWorks version.
31124         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
31125
31126 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
31127
31128         * 5wosinte.ads: Link with -mthreads switch.
31129
31130 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
31131
31132         * init.c (__gnat_install_handler [NetBSD]): Set
31133         __gnat_handler_installed, as done on all other platforms.
31134         Remove duplicated code.
31135
31136 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
31137
31138         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
31139
31140 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
31141
31142         * sinfo.ads: Fix inconsistent example code in comment.
31143
31144 2003-12-11  Robert Dewar  <dewar@gnat.com>
31145
31146         * a-tiinau.adb: Add a couple of comments
31147
31148         * sem_ch3.adb: Minor reformatting
31149
31150         * sem_prag.adb:
31151         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
31152         Minor reformatting throughout
31153
31154 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
31155
31156         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
31157         bounds of a loop, create a separate block in order to generate proper
31158         cleanup actions to prevent memory leaks.
31159
31160         * sem_res.adb (Resolve_Call): After a call to
31161         Establish_Transient_Scope, the call may be rewritten and relocated, in
31162         which case no further processing is needed.
31163
31164         * sem_util.adb: (Wrong_Type): Refine previous fix.
31165          Fixes ACATS regressions.
31166
31167         PR ada/13353
31168         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
31169         be inlined.
31170
31171 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
31172
31173         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
31174         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
31175         obsolete files.
31176
31177         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
31178         (rts-zfp): Ditto.
31179
31180 2003-12-08  Robert Dewar  <dewar@gnat.com>
31181
31182         * 7sintman.adb: Minor reformatting
31183
31184         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
31185         standard linker options to get standard libraries linked. We now plan
31186         to provide dummy versions of these libraries to match the appropriate
31187         configurable run-time (e.g. if a library is not needed at all, provide
31188         a dummy empty library).
31189
31190         * targparm.ads: Configurable_Run_Time mode no longer affects linker
31191         options (-L parameters and standard libraries). What we plan to do is
31192         to provide dummy libraries where the libraries are not required.
31193
31194         * gnatbind.adb: Minor comment improvement
31195
31196 2003-12-08  Javier Miranda  <miranda@gnat.com>
31197
31198         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
31199         aggregate in the parent. Otherwise constants with limited aggregates
31200         are not supported. Add new formal to pass the component type (Ctype).
31201         It is required to call the corresponding IP subprogram in case of
31202         default initialized components.
31203         (Gen_Assign): In case of default-initialized component, generate a
31204         call to the IP subprogram associated with the component.
31205         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
31206         of aggregate with default initialized components.
31207         (Has_Default_Init_Comps): Improve implementation to recursively check
31208         all the present expressions.
31209
31210         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
31211         to indicate that the initialization call corresponds to a
31212         default-initialized component of an aggregate.
31213         In case of default initialized aggregate with tasks this parameter is
31214         used to generate a null string (this is just a workaround that must be
31215         improved later). In case of discriminants, this parameter is used to
31216         generate a selected component node that gives access to the discriminant
31217         value.
31218
31219         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
31220         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
31221         allocated aggregates with default-initialized components.
31222
31223         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
31224         the box notation is used in positional aggregates.
31225
31226 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
31227
31228         * lib.ads: Fix typo in comment
31229
31230 2003-12-08  Vincent Celier  <celier@gnat.com>
31231
31232         * prj.adb (Project_Empty): New component Unkept_Comments
31233         (Scan): Remove procedure; moved to Prj.Err.
31234
31235         * prj.ads (Project_Data): New Boolean component Unkept_Comments
31236         (Scan): Remove procedure; moved to Prj.Err.
31237
31238         * prj-dect.adb: Manage comments for the different declarations.
31239
31240         * prj-part.adb (With_Record): New component Node
31241         (Parse): New Boolean parameter Store_Comments, defaulted to False.
31242         Set the scanner to return ends of line and comments as tokens, if
31243         Store_Comments is True.
31244         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
31245         comments are associated with these nodes. Store the node IDs in the
31246         With_Records.
31247         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
31248         With_Records.
31249         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
31250         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
31251         current project. Call Tree.Restore afterwards. Set the various nodes
31252         for comment storage (Next_End, End_Of_Line, Previous_Line,
31253         Previous_End).
31254
31255         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
31256         defaulted to False.
31257
31258         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
31259         to False. When Truncated is True, truncate the string, never go to the
31260         next line.
31261         (Write_End_Of_Line_Comment): New procedure
31262         (Print): Process comments for nodes N_With_Clause,
31263         N_Package_Declaration, N_String_Type_Declaration,
31264         N_Attribute_Declaration, N_Typed_Variable_Declaration,
31265         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
31266         Process nodes N_Comment.
31267
31268         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
31269         without comments and there are some comments, set the flag
31270         Unkept_Comments to True.
31271         (Scan): If there are comments, set the flag Unkept_Comments to True and
31272         clear the comments.
31273         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
31274         (Next_End_Nodes: New table
31275         (Comment_Zones_Of): New function
31276         (Scan): New procedure; moved from Prj. Accumulate comments in the
31277         Comments table and set end of line comments, comments after, after end
31278         and before end.
31279         (Add_Comments): New procedure
31280         (Save, Restore, Seset_State): New procedures
31281         (There_Are_Unkept_Comments): New function
31282         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
31283         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
31284         procedures.
31285         (First_Comment_After, First_Comment_After_End): New functions
31286         (First_Comment_Before, First_Comment_Before_End): New functions
31287         (Next_Comment): New function
31288         (End_Of_Line_Comment, Follows_Empty_Line,
31289         Is_Followed_By_Empty_Line): New functions
31290         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
31291         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
31292         (Set_Next_Comment): New procedure
31293         (Default_Project_Node): Associate comment before if the node can store
31294         comments.
31295
31296         * scans.ads (Token_Type): New enumeration value Tok_Comment
31297         (Comment_Id): New global variable
31298
31299         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
31300         defaulted to False.
31301         (Scan): Store position of start of comment. If comments are tokens, set
31302         Comment_Id and set Token to Tok_Comment when scanning a comment.
31303         (Set_Comment_As_Token): New procedure
31304
31305         * sinput-p.adb: Update Copyright notice
31306         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
31307         that no longer exists.
31308
31309 2003-12-08  Javier Miranda  <miranda@gnat.com>
31310
31311         * sem_aggr.adb: Add dependence on Exp_Tss package
31312         Correct typo in comment
31313         (Resolve_Aggregate): In case of array aggregates set the estimated
31314         type of the aggregate before calling resolve. This is needed to know
31315         the name of the corresponding IP in case of limited array aggregates.
31316         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
31317         in case of default initialized array components.
31318
31319         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
31320         types. Required to give support to limited aggregates in generic
31321         formals.
31322
31323 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
31324
31325         * sem_ch3.adb (Check_Initialization): For legality purposes, an
31326         inlined body functions like an instantiation.
31327         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
31328         until bounds are analyzed, to diagnose premature use of type.
31329
31330         * sem_util.adb (Wrong_Type): Improve error message when the type of
31331         the expression is used prematurely.
31332
31333 2003-12-08  GNAT Script  <nobody@gnat.com>
31334
31335         * Make-lang.in: Makefile automatically updated
31336
31337 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
31338
31339         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
31340         they are automatically generated by Make-lang.in and cause nothing but
31341         maintenance troubles.
31342
31343 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
31344
31345         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
31346         version of this unit).
31347
31348 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
31349
31350         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
31351         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
31352         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
31353         the body of System.Interrupt_Management common to several targets.
31354         Update copyright notice when appropriate.
31355
31356         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
31357         constant.
31358
31359         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
31360         to ensure that the kernel fills in the interrupted context structure
31361         before calling a signal handler, which is necessary to be able to
31362         unwind past it. Update the copyright notice.
31363
31364 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
31365
31366         * a-elchha.ads: New file.
31367
31368         * a-elchha.adb: New default last chance handler. Contents taken from
31369         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
31370
31371         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
31372         is moved to a-elchha.adb to provide a target-independent default last
31373         chance handler.
31374
31375         * Makefile.rtl: Add a-elchha.o
31376
31377         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
31378
31379 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
31380
31381         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
31382         declared in an instance, do not inline the call if the instance is not
31383         frozen yet, to prevent order of elaboration problems.
31384
31385         * sem_prag.adb: Add comments for previous fix.
31386
31387 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
31388
31389         * g-table.adb: Use the right variable in Set_Item.
31390         Update copyright notice.
31391
31392 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
31393
31394         * Makefile.in: Remove unused rules.
31395
31396 2003-12-05  Vincent Celier  <celier@gnat.com>
31397
31398         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
31399         -nostdlib. Not needed here after all.
31400
31401 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
31402
31403         PR ada/11724
31404         * adaint.h, adaint.c, g-os_lib.ads:
31405         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
31406         on some platforms (including FreeBSD), it is a 64 bit value.
31407         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
31408
31409 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
31410
31411         * gnatvsn.ads (Library_Version): Now contain only the relevant
31412         version info.
31413         (Verbose_Library_Version): New constant.
31414
31415         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
31416         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
31417         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
31418
31419         * gnatlbr.adb: Clean up: replace Library_Version by
31420         Verbose_Library_Version.
31421
31422         * make.adb, lib-writ.adb, exp_attr.adb:
31423         Clean up: replace Library_Version by Verbose_Library_Version.
31424
31425         * 5lintman.adb: Removed.
31426
31427         * Makefile.in:
31428         Update and simplify computation of LIBRARY_VERSION.
31429         Fix computation of GSMATCH_VERSION.
31430         5lintman.adb is no longer used: replaced by 7sintman.adb.
31431
31432 2003-12-03  Robert Dewar  <dewar@gnat.com>
31433
31434         * exp_ch5.adb:
31435         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
31436         name. Modified to consider small non-bit-packed arrays as troublesome
31437         and in need of component-by-component assigment expansion.
31438
31439 2003-12-03  Vincent Celier  <celier@gnat.com>
31440
31441         * lang-specs.h: Process nostdlib as nostdinc
31442
31443         * back_end.adb: Update Copyright notice
31444         (Scan_Compiler_Arguments): Process -nostdlib directly.
31445
31446 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
31447
31448         * Makefile.in:
31449         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
31450         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
31451         included in HIE_NONE_TARGET_PAIRS.
31452
31453 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
31454
31455         * sem_attr.adb:
31456         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
31457         is legal in an instance, because legality is cheched in the template.
31458
31459         * sem_prag.adb:
31460         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
31461         appplied to an unchecked conversion of a formal parameter.
31462
31463         * sem_warn.adb:
31464         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
31465         variables.
31466
31467 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
31468
31469         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
31470         routines. The second one is new functionality to deal with backtracing
31471         through signal handlers.
31472         (unwind): Split into the two separate subroutines above.
31473         Update the documentation, and deal properly with sizeof (REG) different
31474         from sizeof (void*).
31475
31476 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
31477
31478         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
31479         so that the debugger can reliably access the value of the parameter,
31480         and therefore is able to display the exception name when an exception
31481         breakpoint is reached.
31482
31483 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
31484
31485         * fmap.adb: Fix typo in warning message.
31486
31487         * g-socket.ads, g-socket.adb: Make Free a visible instance of
31488         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
31489
31490 2003-12-01  Vincent Celier  <celier@gnat.com>
31491
31492         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
31493         ther is no Afile.
31494         (Build_Library): Get the switches only if Default_Switches is declared
31495         in package Binder.
31496
31497 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
31498
31499         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
31500         actuals that are indexed components, reanalyze actual to ensure that
31501         packed array references are properly expanded.
31502
31503         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
31504         attempted assignment to a discriminant.
31505
31506 2003-12-01  Robert Dewar  <dewar@gnat.com>
31507
31508         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
31509         reformatting.
31510
31511         * switch-c.adb: Minor reformatting of comments
31512
31513 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
31514
31515         * Makefile.in: Clean ups.
31516
31517 2003-12-01  GNAT Script  <nobody@gnat.com>
31518
31519         * Make-lang.in: Makefile automatically updated
31520
31521 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
31522
31523         * 5wsystem.ads: Disable zero cost exception, not ready yet.
31524
31525 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
31526
31527         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
31528         to force serialization.
31529
31530 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
31531
31532         * g-socket.ads, g-socket.adb:
31533         Clarify documentation of function Stream. Introduce a Free procedure
31534         to release the returned Stream once it becomes unused.
31535
31536         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
31537
31538 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
31539
31540         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
31541         since NT 4 cannot handle timeout values that are too large,
31542         e.g. DWORD'Last - 1.
31543
31544 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
31545
31546         * exp_ch4.adb:
31547         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
31548         in procedure calls and whose expansion must be deferred.
31549
31550         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
31551         is in exp_ch4.
31552
31553         * sem_ch3.adb:
31554         (Build_Derived_Array_Type): Create operator for unconstrained type
31555         if ancestor is unconstrained.
31556
31557 2003-11-26  Vincent Celier  <celier@gnat.com>
31558
31559         * make.adb (Project_Object_Directory): New global variable
31560         (Change_To_Object_Directory): New procedure
31561         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
31562         of Change_Dir directly. Do not change working directory to object
31563         directory of main project after each compilation.
31564         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
31565         directly.
31566         Change to object directory of main project before binding step.
31567         (Initialize): Initialize Project_Object_Directory to No_Project
31568
31569         * mlib-prj.adb:
31570         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
31571         binding a Stand-Alone Library.
31572
31573         * output.adb: Update Copyright notice
31574         (Write_Char): Output buffer when full
31575
31576 2003-11-26  Robert Dewar  <dewar@gnat.com>
31577
31578         * sem_ch13.adb: (Check_Size): Reset size if size is too small
31579
31580         * sem_ch13.ads:
31581         (Check_Size): Fix documentation to include bit-packed array case
31582
31583         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
31584
31585         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
31586
31587         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
31588
31589 2003-11-24  Arnaud Charlet  <charlet@act-europe.fr>
31590
31591         PR ada/13142
31592         * utils.c (init_gigi_decls): Change name of built-in setjmp to
31593         __builtin_setjmp, since this is apparently needed by recent
31594         non Ada changes.
31595
31596 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31597
31598         * adadecode.c: Only include ctype.h if not IN_GCC.
31599         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
31600
31601 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
31602
31603         * Makefile.in:
31604         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
31605         signals and interrupts.
31606
31607         * 5zintman.ads: New File.
31608
31609         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
31610         add exception signals to the set of unmasked signals.
31611
31612         * 5ztaprop.adb:
31613         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
31614         between signals and interrupts.
31615         Add to Unblocked_Signal_Mask the set of signals that are in
31616         Keep_Unmasked.
31617
31618         * 7sinmaop.adb:
31619         Adding a check to see whether the Interrupt_ID we want to unmask is in
31620         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
31621         reason is that the index type of the Keep_Unmasked array is not always
31622         Interrupt_ID; it may be a subtype of Interrupt_ID.
31623
31624 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
31625
31626         * exp_util.adb:
31627         (Remove_Side_Effects): Condition constantness of object created for a
31628          an unchecked type conversion on the constantness of the expression
31629          to ensure the correct value for 'Constrained when passing components
31630          of view-converted class-wide objects.
31631
31632 2003-11-24  Robert Dewar  <dewar@gnat.com>
31633
31634         * par-load.adb (Load): Improve handling of misspelled and missing units
31635         Removes several cases of compilation abandoned messages
31636
31637         * lib.adb: (Remove_Unit): New procedure
31638
31639         * lib.ads: (Remove_Unit): New procedure
31640
31641         * lib-load.adb: Minor reformatting
31642
31643 2003-11-24  Vincent Celier  <celier@gnat.com>
31644
31645         * make.adb:
31646         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
31647         (Marking_Label): Label to mark processed source files. Incremented for
31648         each executable.
31649         (Gnatmake): Increase Marking_Labet for each executable
31650         (Is_Marked): Compare against marking label
31651         (Mark): Mark with marking label
31652
31653 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
31654
31655         * s-thread.ads:
31656         Move the declaration of the TSD for System.Threads to System.Soft_Links.
31657         Add some comments.
31658
31659         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
31660         (rts-cert): build a single relocatable object for the run-time lib.
31661         Fix perms.
31662
31663 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
31664
31665         * Make-lang.in:
31666         Use gnatls rather than gcc to obtain the location of GNAT RTL for
31667         crosstools build.
31668
31669 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
31670
31671         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
31672         can not use it as before (that is, as a variable) when dumping it into
31673         the tree file. Add a local variable to store the result of this
31674         function and to be used as the string to be written into the tree.
31675
31676         * scn.adb (Initialize_Scanner): Add comments explaining the recent
31677         changes.
31678
31679         * sinput.adb (Source_First, Source_Last): In case of
31680         Internal_Source_File, replace returning attributes of
31681         Internal_Source_Ptr (which is wrong) with returning attributes of
31682         Internal_Source.
31683
31684 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
31685
31686         * sem_ch3.adb:
31687         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
31688         used for implicit concatenation operators.
31689         Code cleanup.
31690
31691         * sem_elab.adb:
31692         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
31693         task bodies that are in the scope of a Suppress pragma.
31694         (Check_A Call): Use the flag to prevent spurious elaboration checks.
31695
31696         * sinfo.ads, sinfo.adb:
31697         New flag No_Elaboration_Check on function/procedure calls, to properly
31698         suppress checks on calls in task bodies that are within a local suppress
31699         pragma.
31700
31701         * exp_ch4.adb:
31702         (Expand_Concatenate_Other): Use the proper integer type for the
31703         expression for the upper bound, to avoid universal_integer computations
31704         when possible.
31705
31706 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
31707
31708         * .cvsignore: Delete.
31709
31710 2003-11-21  Andreas Schwab  <schwab@suse.de>
31711
31712         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
31713
31714 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
31715
31716         * 5wsystem.ads: Enable zero cost exception.
31717
31718 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
31719
31720         * 5ztiitho.adb: Remove an unreferenced variable.
31721
31722 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
31723
31724         * adaint.c: For FreeBSD, use mkstemp.
31725
31726 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
31727
31728         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
31729
31730 2003-11-21  Robert Dewar  <dewar@gnat.com>
31731
31732         * bld.adb: Remove useless USE of gnatvsn
31733
31734         * gnatchop.adb: Minor reformatting
31735         Clean up version handling to be more consistent
31736
31737         * gnatxref.adb: Minor reformatting
31738
31739         * gprcmd.adb: Minor reformatting
31740         Fix output of copyright to be more consistent with other tools
31741
31742 2003-11-21  Vincent Celier  <celier@gnat.com>
31743
31744         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
31745
31746 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
31747
31748         * atree.adb (Initialize): Add initializations for global variables
31749         used in New_Copy_Tree.
31750
31751         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
31752         Internal_Source_File as the actual).
31753         Put the set of statements creating Any_Character before the set of
31754         statements creating Any_Array to have Any_Character fully initialized
31755         when it is used in creating Any_Array.
31756
31757         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
31758         not call Scan in case if the actual is Internal_Source_File
31759         Add 2003 to copyright note.
31760
31761         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
31762         processing Internal_Source_File.
31763
31764         * types.ads: Add the constant Internal_Source_File representing the
31765         source buffer for artificial source-code-like strings created within
31766         the compiler (the definition of Source_File_Index is changed).
31767
31768 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
31769
31770         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
31771         56system.ads: New file, FreeBSD version.
31772
31773 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
31774
31775         * Make-lang.in (ada.extraclean): Delete.
31776
31777 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
31778
31779         * gnatmem.adb: Clean up verbose output.
31780
31781         * gprcmd.adb: Change copyright to FSF.
31782
31783 2003-11-19  Vincent Celier  <celier@gnat.com>
31784
31785         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
31786         and Version (ignored).
31787
31788         * symbols.ads: (Policy): New type
31789         (Initialize): New parameter Reference, Symbol_Policy and
31790         Library_Version.
31791         Remove parameter Force.
31792         Minor reformatting.
31793
31794         * snames.ads, snames.adbadb: New standard names
31795         Library_Reference_Symbol_File and Library_Symbol_Policy
31796
31797         * mlib-prj.adb:
31798         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
31799         project.
31800
31801         * mlib-tgt.adb:
31802         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
31803
31804         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
31805
31806         * prj.adb: (Project_Empty): New component Symbol_Data
31807
31808         * prj.ads: (Policy, Symbol_Record): New types
31809         (Project_Data): New component Symbol_Data
31810
31811         * prj-attr.adb:
31812         New attributes Library_Symbol_File, Library_Symbol_Policy and
31813         Library_Reference_Symbol_File.
31814
31815         * prj-nmsc.adb:
31816         (Ada_Check): When project is a Stand-Alone library project, process
31817         attribute Library_Symbol_File, Library_Symbol_Policy and
31818         Library_Reference_Symbol_File.
31819
31820         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
31821         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
31822         5sml-tgt.adb (Build_Dynamic_Library): New parameter
31823         Symbol_Data (ignored).
31824
31825         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
31826         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
31827         functions Option_File_Name and Version_String. Set new options of
31828         gnatsym related to symbol file, symbol policy and reference symbol
31829         file.
31830
31831         * 5vsymbol.adb:
31832         Extensive modifications to take into account the reference symbol file,
31833         the symbol policy, the library version and to put in the symbol file the
31834         minor and major IDs.
31835
31836         * bld.adb (Process_Declarative_Items): Put second argument of
31837         gprcmd to_absolute between single quotes, to avoid problems with
31838         Windows.
31839
31840         * bld-io.adb: Update Copyright notice.
31841         (Flush): Remove last character of a line, if it is a back slash, to
31842         avoid make problems.
31843
31844         * gnatsym.adb:
31845         Implement new scheme with reference symbol file and symbol policy.
31846
31847         * g-os_lib.ads: (Is_Directory): Clarify comment
31848
31849 2003-11-19  Robert Dewar  <dewar@gnat.com>
31850
31851         * atree.adb: Move New_Copy_Tree global variables to head of package
31852
31853         * errout.adb: Minor reformatting
31854
31855 2003-11-19  Javier Miranda  <miranda@gnat.com>
31856
31857         * sem_ch4.adb: (Diagnose_Call): Improve error message.
31858         Add reference to Ada0Y (AI-50217)
31859
31860         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
31861         sem_util.adb: Add reference to AI-50217
31862
31863         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
31864
31865         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
31866
31867         * sem_aggr.adb: Complete documentation of AI-287 changes
31868
31869         * par-ch4.adb: Document previous changes.
31870
31871         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
31872         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
31873         Ada0Y (AI-50217)
31874
31875         * exp_aggr.adb: Add references to AI-287 in previous changes
31876
31877 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
31878
31879         * exp_ch6.adb:
31880         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
31881         in the rewriting is the result of an inlined call.
31882
31883         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
31884         parameter is a type conversion, use original node to construct the
31885         post-call assignment, because expression may have been rewritten, e.g.
31886         if it is a packed array.
31887
31888         * sem_attr.adb:
31889         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
31890         body, just as it is in an instance.
31891         Categorization routines
31892
31893         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
31894         Instantiate_Object): Set proper sloc reference for message on missing
31895         actual.
31896
31897 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
31898
31899         * Makefile.in: Add FreeBSD libgnat pairs.
31900
31901         * usage.adb: Fix typo in usage message.
31902
31903 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
31904
31905         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
31906         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
31907         pragma Thread_Body.
31908         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
31909
31910         * s-thread.adb: This file is now a dummy implementation of
31911         System.Thread.
31912
31913 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
31914
31915         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
31916
31917 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
31918
31919         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
31920         instanciation references in the parent type description.
31921
31922 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31923
31924         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
31925
31926         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
31927         TYPE_PRECISION directly from esize.
31928
31929 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
31930
31931         * cstreams.c:
31932         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
31933
31934         * init.c: Initialization routines for FreeBSD
31935
31936         * link.c: Link info for FreeBSD
31937
31938         * sysdep.c: Add the case of FreeBSD
31939
31940 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
31941
31942         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
31943         already called in System.Threads.
31944
31945         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
31946         environment task, as it has been moved to System.Threads.Initialization.
31947
31948 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
31949
31950         * adaint.c (__gnatlib_install_locks): Only reference
31951         __gnat_install_locks on VMS, since other platforms can avoid using
31952         --enable-threads=gnat
31953
31954 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31955
31956         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
31957
31958         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
31959         TYPE_PACKED_ARRAY_TYPE_P.
31960         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
31961
31962         Part of PR ada/12806
31963         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
31964         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
31965
31966 2003-11-17  Vincent Celier  <celier@gnat.com>
31967
31968         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
31969         to False.
31970         Do not set exit status to Failure when Warning is True.
31971         (Gnatchop): Make errors "no compilation units found" and
31972         "no source files written" warnings only.
31973
31974         * make.adb (Gnatmake): When using a project file, set
31975         Look_In_Primary_Dir to False.
31976         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
31977         and Local_Configuration_Pragmas in the project where they are declared
31978         not an extending project which might have inherited them.
31979
31980         * osint.adb (Locate_File): If Name is already an absolute path, do not
31981         look for a directory.
31982
31983         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
31984         -gnats (Check_Syntax) is used, issue only a warning, not an error.
31985
31986         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
31987         in objects of type Variable_Value.
31988
31989         * prj.ads: (Variable_Value): New component Project
31990
31991         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
31992         is in a project extended by Project.
31993
31994         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
31995         Project of Variable_Values to this new parameter value.
31996         (Expression): Set component Project of Variable_Values.
31997         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
31998         Set the component Project in array elements.
31999
32000 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
32001
32002         * errout.adb: (Initialize): Add initialization for error nodes.
32003
32004         * sem_ch12.adb (Initialize): Add missing initializations for
32005         Exchanged_Views and Hidden_Entities.
32006
32007 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
32008
32009         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
32010         already instantiated tree for use in subsequent inlining.
32011         (Analyze_Associations, Instantiate_Formal_Subprogram,
32012         Instantiate_Object): improve error message for mismatch in
32013         instantiations.
32014
32015         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
32016         instantiations of subprograms declared in instances.
32017
32018 2003-11-17  Javier Miranda  <miranda@gnat.com>
32019
32020         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
32021         executed only under the Extensions_Allowed flag.
32022
32023 2003-11-17  Robert Dewar  <dewar@gnat.com>
32024
32025         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
32026         zeroes suppressed.
32027         (Address_Image): Fix bug of returning 0x instead of 0x0
32028         Minor reformatting (function specs).
32029
32030         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
32031         (missed case of 33-63)
32032
32033         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
32034
32035         * s-thread.adb: Add comments for pragma Restriction
32036
32037         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
32038         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
32039
32040 2003-11-17  Ed Falis  <falis@gnat.com>
32041
32042         * s-thread.adb: Added No_Tasking restriction for this implementation.
32043
32044 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
32045
32046         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
32047         instanciation references in the parent type description.
32048
32049 2003-11-17  GNAT Script  <nobody@gnat.com>
32050
32051         * Make-lang.in: Makefile automatically updated
32052
32053 2003-11-16  Jason Merrill  <jason@redhat.com>
32054
32055         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
32056         and TAGS files that include them for each front end.
32057
32058 2003-11-14  Andreas Jaeger  <aj@suse.de>
32059
32060         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
32061         is the canonical version.
32062         * misc.c (gnat_handle_option): Likewise.
32063
32064         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
32065
32066         * 5nsystem.ads: New file for x86_64-linux-gnu.
32067
32068 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
32069
32070         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
32071
32072         * comperr.adb: Fix logic in previous change.
32073
32074 2003-11-13  Vincent Celier  <celier@gnat.com>
32075
32076         * 5bml-tgt.adb (Build_Dynamic_Library): Use
32077         Osint.Include_Dir_Default_Prefix instead of
32078         Sdefault.Include_Dir_Default_Name.
32079
32080         * gnatlbr.adb: Update Copyright notice
32081         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
32082         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
32083         instead of Sdefault.Object_Dir_Default_Name
32084
32085         * gnatlink.adb:
32086         (Process_Binder_File): Never suppress the option following -Xlinker
32087
32088         * mdll-utl.adb:
32089         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
32090         Sdefault.Object_Dir_Default_Name.
32091
32092         * osint.ads, osint.adb:
32093         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
32094         Minor reformatting.
32095
32096         * vms_conv.ads: Minor reformating
32097         Remove GNAT STANDARD and GNAT PSTA
32098
32099         * vms_conv.adb:
32100         Allow GNAT MAKE to have several files on the command line.
32101         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
32102         Sdefault.Object_Dir_Default_Name.
32103         Minor Reformating
32104         Remove data for GNAT STANDARD
32105
32106         * vms_data.ads:
32107         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
32108         Remove data for GNAT STANDARD
32109         Remove options and documentation for -gnatwb/-gnatwB: these warning
32110         options no longer exist.
32111
32112 2003-11-13  Ed Falis  <falis@gnat.com>
32113
32114         * 5zthrini.adb: (Init_RTS): Made visible
32115
32116         * 5zthrini.adb:
32117         (Register): Removed unnecessary call to taskVarGet that checked whether
32118          an ATSD was already set as a task var for the argument thread.
32119
32120         * s-thread.adb:
32121         Updated comment to reflect that this is a VxWorks version
32122         Added context clause for System.Threads.Initialization
32123         Added call to System.Threads.Initialization.Init_RTS
32124
32125 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
32126
32127         * 5zthrini.adb:
32128         (Init_RTS): New procedure, for the initialization of the run-time lib.
32129
32130         * s-thread.adb:
32131         Remove dependancy on System.Init, so that this file can be used in the
32132         AE653 sequential run-time lib.
32133
32134 2003-11-13  Robert Dewar  <dewar@gnat.com>
32135
32136         * bindgen.adb: Minor reformatting
32137
32138 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
32139
32140         * checks.adb:
32141         (Apply_Discriminant_Check): Do no apply check if target type is derived
32142         from source type with no applicable constraint.
32143
32144         * lib-writ.adb:
32145         (Ensure_System_Dependency): Do not apply the style checks that may have
32146         been specified for the main unit.
32147
32148         * sem_ch8.adb:
32149         (Find_Selected_Component): Further improvement in error message, with
32150         RM reference.
32151
32152         * sem_res.adb:
32153         (Resolve): Handle properly the case of an illegal overloaded protected
32154         procedure.
32155
32156 2003-11-13  Javier Miranda  <miranda@gnat.com>
32157
32158         * exp_aggr.adb:
32159         (Has_Default_Init_Comps): New function to check the presence of
32160         default initialization in an aggregate.
32161         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
32162         extension aggregate of a limited record. In addition, a new formal
32163         was added to do not initialize the record controller (if any) during
32164         this recursive expansion of ancestors.
32165         (Init_Controller): Add support for limited record components.
32166         (Expand_Record_Aggregate): In case of default initialized components
32167         convert the aggregate into a set of assignments.
32168
32169         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
32170         describing the new syntax.
32171         Nothing else needed to be done because this subprogram delegates part of
32172         its work to P_Precord_Or_Array_Component_Association.
32173         (P_Record_Or_Array_Component_Association): Give support to the new
32174         syntax for default initialization of components.
32175
32176         * sem_aggr.adb:
32177         (Resolve_Aggregate): Relax the strictness of the frontend in case of
32178         limited aggregates.
32179         (Resolve_Record_Aggregate): Give support to default initialized
32180         components.
32181         (Get_Value): In case of default initialized components, duplicate
32182         the corresponding default expression (from the record type
32183         declaration). In case of default initialization in the *others*
32184         choice, do not check that all components have the same type.
32185         (Resolve_Extension_Aggregate): Give support to limited extension
32186         aggregates.
32187
32188         * sem_ch3.adb:
32189         (Check_Initialization): Relax the strictness of the front-end in case
32190         of aggregate and extension aggregates. This test is now done in
32191         Get_Value in a per-component manner.
32192
32193         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
32194         expression corresponds to a limited aggregate. This test is now done
32195         in Get_Value.
32196
32197         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
32198         Box_Present flag.
32199
32200         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
32201         present in an N_Component_Association node
32202
32203 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
32204
32205         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
32206         type-conformant entry only if they are homographs.
32207
32208 2003-11-13  GNAT Script  <nobody@gnat.com>
32209
32210         * Make-lang.in: Makefile automatically updated
32211
32212 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
32213
32214         * adadecode.c: Use <> form of include for ctype.h.
32215         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
32216
32217 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
32218
32219         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
32220         Works around PR middle-end/6552.
32221
32222 2003-11-10  Ed Falis  <falis@gnat.com>
32223
32224         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
32225
32226         * 5zinit.adb: (Install_Handler): Moved back to spec
32227         (Install_Signal_Handlers): Deleted
32228
32229         * 5zthrini.adb: Added context clause for System.Storage_Elements
32230         (Register): Only handles creation of taskVar; initialization moved to
32231         Thread_Body_Enter.
32232         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
32233         Added declaration of environment task secondary stack and
32234         initialization.
32235
32236         * s-thread.adb: Implement bodies for thread body processing
32237
32238         * s-thread.ads:
32239         Added comment identifying supported targets for pragma Thread_Body.
32240
32241 2003-11-10  Pascal Obry  <obry@gnat.com>
32242
32243         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
32244         GNAT_MAX_PATH_LEN.
32245
32246         * s-fileio.adb:
32247         (Open): Properly check for string length before copying into the buffer.
32248         Raises Name_Error if buffer is too small. Note that this was a potential
32249         buffer overflow.
32250
32251 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
32252
32253         * bindgen.adb, comperr.adb: Code clean ups.
32254         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
32255
32256 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
32257
32258         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
32259
32260 2003-11-10  Vincent Celier  <celier@gnat.com>
32261
32262         * gprcmd.adb:
32263         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
32264         installation.
32265
32266         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
32267
32268         * prj.adb: (Project_Empty): Add new boolean component Virtual
32269
32270         * prj.ads: (Virtual_Prefix): New constant string
32271         (Project_Data): New boolean component Virtual
32272
32273         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
32274         a library project is extended by a virtual extending project.
32275
32276         * prj-part.adb:
32277         Modifications throughout to implement extending-all project, including:
32278         (Virtual_Hash, Processed_Hash): New hash tables
32279         (Create_Virtual_Extending_Project): New procedure
32280         (Look_For_Virtual_Projects_For): New procedure
32281
32282         * prj-proc.adb:
32283         (Process): After checking the projects, if main project is an
32284         extending-all project, set the object directory of all virtual extending
32285         project to the object directory of the main project.
32286         Adjust error message when a virtual extending project has the same
32287         object directory as an project being extended.
32288         (Recursive_Process): If name starts with the virtual prefix, set Virtual
32289         to True in the project data.
32290
32291         * prj-tree.adb:
32292         (Default_Project_Node): Add new boolean component Extending_All
32293         (Is_Extending_All): New function
32294         (Set_Is_Extending_All): New procedure
32295
32296         * prj-tree.ads: (Is_Extending_All): New function
32297         (Set_Is_Extending_All): New procedure
32298         (Project_Node_Record): New boolean component Extending_All
32299
32300         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
32301
32302         * vms_data.ads:
32303         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
32304
32305         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
32306         "gprcmd prefix" to define it.
32307
32308 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
32309
32310         * einfo.ads: Fix a typo and remove an extraneous word in comments.
32311
32312         * lib-load.adb:
32313         (Create_Dummy_Package_Unit): Set the scope of the entity for the
32314         created dummy package to Standard_Standard, not to itself, to
32315         defend other parts of the front-end against encoutering a cycle in
32316         the scope chain.
32317
32318         * sem_ch10.adb:
32319         (Analyze_With_Clause): When setting the entities for the successive
32320         N_Expanded_Names that constitute the name of a child unit, do not
32321         attempt to go further than Standard_Standard in the chain of scopes.
32322         This case arises from the placeholder units created by
32323         Create_Dummy_Package_Unit in the case of a with_clause for a
32324         nonexistent child unit.
32325
32326 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
32327
32328         * exp_ch6.adb:
32329         (Expand_Thread_Body): Place subprogram on scope stack, so that new
32330         declarations are given the proper scope.
32331
32332         * sem_ch13.adb:
32333         (Check_Expr_Constants): Reject an expression that contains a constant
32334         created during expansion, and that appears after the object to which
32335         the address clause applies.
32336
32337         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
32338         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
32339         that uses 'Range of a function call with controlled components, so
32340         that the function result can be finalized before starting the loop.
32341
32342         * sem_ch8.adb:
32343         (Find_Selected_Component): Improve error message when prefix is
32344         an implicit dereference of an incomplete type.
32345
32346 2003-11-10  Robert Dewar  <dewar@gnat.com>
32347
32348         * opt.ads: New Print_Standard flag for -gnatS switch
32349
32350         * sem_ch13.adb: Remove some additional checks for unaligned arrays
32351
32352         * cstand.adb (Create_Standard): Print out package standard if -gnatS
32353         switch set
32354
32355         * debug.adb: Update doc for -gnatds to discuss relationship with new
32356         -gnatS flag
32357
32358         * sinfo.adb: Add new field Entity_Or_Associated_Node
32359
32360         * sinfo.ads: Add new field Entity_Or_Associated_Node
32361         Update documentation for Associated_Node and Entity fields to clarify
32362         relationship and usage.
32363
32364         * sprint.adb:
32365         (Write_Id): Properly process Associated_Node field in generic template
32366
32367         * switch-c.adb:
32368         Recognize new -gnatS switch for printing package Standard
32369         This replaces gnatpsta
32370
32371         * usage.adb:
32372         Add line for  new -gnatS switch for printing package Standard
32373         This replaces gnatpsta
32374
32375 2003-11-10  Andreas Jaeger  <aj@suse.de>
32376
32377         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
32378         integer.
32379
32380 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
32381
32382         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
32383         by gnat1.
32384
32385 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
32386
32387         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
32388         no longer needed.
32389
32390         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
32391
32392         * sysdep.c: Add handling of cygwin.
32393
32394 2003-11-10  GNAT Script  <nobody@gnat.com>
32395
32396         * Make-lang.in: Makefile automatically updated
32397
32398 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
32399
32400         PR 12950
32401         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
32402         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
32403         Replace GNAT_ROOT by GCC_ROOT.
32404
32405         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
32406
32407 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
32408
32409         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
32410         and update for changed meaning of GET_MODE_BITSIZE.
32411
32412 2003-11-04  Doug Rupp  <rupp@gnat.com>
32413
32414         * sysdep.c: Problem discovered during IA64 VMS port.
32415         [VMS] #include <unixio.h> to get proper prototypes.
32416
32417         * adaint.c:
32418         Issues discovered/problems fixed during IA64 VMS port.
32419         [VMS] #define _POSIX_EXIT for proper semantics.
32420         [VMS] #include <unixio.h> for proper prototypes.
32421         [VMS] (fork): #define IA64 version.
32422         (__gnat_os_exit): Remove unnecessary VMS specific code.
32423
32424 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32425
32426         Part of PR ada/12806
32427         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
32428         tree, not integer.
32429
32430         * decl.c:
32431         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
32432         not integer.
32433
32434         * targtyps.c, decl.c, misc.c,
32435         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
32436         routines to work around change in FP sizing semantics in GCC.
32437
32438         * utils.c:
32439         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
32440
32441         * gigi.h: (enumerate_modes): New function.
32442
32443         * Make-lang.in: (ada/misc.o): Add real.h.
32444
32445         * misc.c: (enumerate_modes): New function.
32446
32447 2003-11-04  Robert Dewar  <dewar@gnat.com>
32448
32449         * 3vtrasym.adb: Minor reformatting
32450         Use terminology encoded/decoded name, rather than C++ specific notion
32451         of mangling (this is the terminology used throughout GNAT).
32452
32453         * einfo.h: Regenerated
32454
32455         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
32456
32457         * exp_ch6.adb:
32458         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
32459
32460         * par-prag.adb: Add dummy entry for Thread_Body pragma
32461
32462         * rtsfind.ads:
32463         Add entries for System.Threads entities for thread body processing
32464
32465         * sem_attr.adb:
32466         (Analyze_Pragma, Access attributes): Check these are not applied to a
32467         thread body, since this is not permitted
32468
32469         * sem_prag.adb: Add processing for Thread_Body pragma.
32470         Minor comment fix.
32471
32472         * sem_res.adb:
32473         (Resolve_Call): Check for incorrect attempt to call a thread body
32474          procedure with a direct call.
32475
32476         * snames.ads, snames.adb: Add entry for Thread_Body pragma
32477         Add names associated with thread body expansion
32478
32479         * snames.h: Add entry for Thread_Body pragma
32480
32481         * s-thread.adb: Add entries for thread body processing
32482         These are dummy bodies so far
32483
32484         * s-thread.ads: Add documentation on thread body handling.
32485         Add entries for thread body processing.
32486
32487 2003-11-04  Javier Miranda  <miranda@gnat.com>
32488
32489         * sem_ch10.adb:
32490         (Build_Limited_Views): Return after posting an error in case of limited
32491         with_clause on subprograms, generics, instances or generic renamings
32492         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
32493         on subprograms, generics, instances or generic renamings
32494
32495 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
32496
32497         * raise.c (setup_to_install): Correct mistake in last revision; two
32498         arguments out of order.
32499
32500         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
32501         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
32502         notice, missed in previous change.
32503         Remove trailing blanks and other style errors introduced in previous
32504         change.
32505
32506 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
32507
32508         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
32509         rid of the wrapper for a LJM type, ensuring we don't do that if the
32510         field is addressable.  This avoids potential low level type view
32511         mismatches later on, for instance in a by-reference argument passing
32512         process.
32513
32514 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32515
32516         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
32517         aligned at byte boundary.
32518
32519 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
32520
32521         * decl.c (components_to_record): Do not delete the empty variants from
32522         the end of the union type.
32523
32524 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
32525
32526         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
32527         operation for a derived type, an explicit declaration may use a local
32528         subtype of Boolean.
32529
32530 2003-11-04  Vincent Celier  <celier@gnat.com>
32531
32532         * make.adb (Gnatmake): Allow main sources on the command line with a
32533         library project when it is only for compilation (no binding or
32534         linking).
32535
32536 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
32537
32538         * Makefile.in: Remove many duplicate variables.
32539
32540 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
32541
32542         * Make-lang.in (dvi): Move targets to $(docobjdir).
32543         (gnat_ug_vms.dvi): Simplify rule and adjust target.
32544         (gnat_ug_wnt.dvi): Likewise.
32545         (gnat_ug_unx.dvi): Likewise.
32546         (gnat_ug_vxw.dvi): Likewise.
32547         (gnat_rm.dvi): Likewise.
32548         (gnat-style.dvi): Likewise.
32549
32550 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
32551
32552         * gigi.h: Missed commit from update for C90.
32553
32554 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
32555
32556         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
32557
32558 2003-10-31  Andreas Schwab  <schwab@suse.de>
32559
32560         * raise.c (get_action_description_for): Fix typo in last change.
32561
32562 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
32563
32564         PR ada/12761
32565         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
32566         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
32567
32568 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
32569
32570         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
32571         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
32572         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
32573         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
32574         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
32575
32576 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
32577
32578         * 3vtrasym.adb:
32579         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
32580         numbers when symbol name is too long.
32581
32582 2003-10-30  Ed Falis  <falis@gnat.com>
32583
32584         * g-signal.ads, g-signal.adb: New files
32585
32586         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
32587
32588         * Makefile.rtl: Introduce GNAT.Signals
32589
32590 2003-10-30  Robert Dewar  <dewar@gnat.com>
32591
32592         * freeze.adb: Minor reformatting
32593
32594         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
32595
32596         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
32597         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
32598         New handling of Id_Check parameter to improve recognition of keywords
32599         used as identifiers.
32600         Update copyright notice to include 2003
32601
32602 2003-10-29  Robert Dewar  <dewar@gnat.com>
32603
32604         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
32605         sem_ch10.adb: Minor reformatting
32606
32607         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
32608         (Expand_Assign_Record): Test right hand side for bit unaligned as well
32609
32610 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
32611
32612         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
32613         Support for TBK$SYMBOLIZE-based symbolic traceback.
32614
32615 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
32616
32617         * exp_disp.adb:
32618         Revert previous change, that did not work well when pragma No_Run_Time
32619         was used in conjunction with a run-time other than ZFP.
32620
32621 2003-10-29  Vincent Celier  <celier@gnat.com>
32622
32623         * make.adb:
32624         (Gnatmake): When there are no Ada mains in attribute Main, disable the
32625          bind and link steps only is switch -z is not used.
32626
32627 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
32628
32629         * Makefile.generic: Remove duplicated setting of CC.
32630
32631         * Makefile.prolog: Set CC to gcc by default, to override make's
32632         default (cc).
32633
32634         * einfo.h: Regenerated.
32635
32636 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
32637
32638         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
32639         current body, after compiling subunit.
32640
32641         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
32642         when in deleted code, because gigi needs properly ordered freeze
32643         actions to annotate types.
32644
32645         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
32646         prevent the premature freezing of record type that contains
32647         subcomponents with a private type that does not yet have a completion.
32648
32649 2003-10-29  Javier Miranda  <miranda@gnat.com>
32650
32651         * sem_ch12.adb:
32652         (Analyze_Package_Instantiation): Check that instances can not be used in
32653         limited with_clauses.
32654
32655         * sem_ch8.adb:
32656         (Analyze_Package_Renaming): Check that limited withed packages cannot
32657         be renamed. Improve text on error messages related to limited
32658         with_clauses.
32659
32660         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
32661
32662         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
32663         Update copyright notice.
32664
32665         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
32666         (Install_Limited_Context_Clauses): New subprogram that isolates all the
32667         checks required for limited context_clauses and installs the limited
32668         view.
32669         (Install_Limited_Withed_Unit): Complete its documentation.
32670         (Analyze_Context): Check that limited with_clauses are only allowed in
32671         package specs.
32672         (Install_Context): Call Install_Limited_Context_Clauses after the
32673         parents have been installed.
32674         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
32675         package as 'From_With_Type'; this mark indicates that the limited view
32676         is installed. Used to check bad usages of limited with_clauses.
32677         (Build_Limited_Views): Do not add shadow entities to the scope's list
32678         of entities. Do not add real entities to the Non_Limited_Views chain.
32679         Improve error notification.
32680         (Remove_Context_Clauses): Remove context clauses in two phases:
32681         limited views first and regular views later (to maintain the
32682         stack model).
32683         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
32684         its visible entities.
32685
32686 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
32687
32688         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
32689         with any type that Is_Fixed_Point_Type.
32690
32691         * sinfo.ads: Fix documentation for Associated_Node attribute.
32692
32693 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
32694
32695         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
32696         both '-gnatc' and '-gnatt' are specified.
32697
32698         * atree.adb (Initialize): Add initialization for Node_Count (set to
32699         zero).
32700
32701 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32702
32703         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
32704         do not consider as Pure.
32705
32706         Part of implementation of function-at-a-time:
32707
32708         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
32709         (tree_transform): Add new argument to build_component_ref.
32710         (tree_transform, case N_Assignment_Statement): Make and return an
32711         EXPR_STMT.
32712         (tree_transform): If result IS_STMT, set flags and return it.
32713         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
32714
32715         * utils2.c (build_simple_component_ref, build_component_ref): Add new
32716         arg, NO_FOLD_P.
32717         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
32718         (build_allocator): Likewise.
32719
32720         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
32721         Add new arg to build_component_ref.
32722         (maybe_unconstrained_array, unchecked_convert): Likewise.
32723
32724         * ada-tree.def (EXPR_STMT): New code.
32725
32726         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
32727
32728         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
32729         build_component_ref calls.
32730
32731         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
32732
32733         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
32734         (build_component_ref): Add new argument, NO_FOLD_P.
32735
32736 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
32737
32738         * Makefile.generic: Add missing substitution on object_deps handling.
32739
32740         PR ada/5909
32741         * Make-lang.in (check-ada): Enable ACATS test suite.
32742
32743 2003-10-27  Robert Dewar  <dewar@gnat.com>
32744
32745         * exp_ch3.adb:
32746         (Freeze_Array_Type): We do not need an initialization routine for types
32747         derived from String or Wide_String. They should be treated the same
32748         as String and Wide_String themselves. This caused problems with the
32749         use of Initialize_Scalars.
32750
32751         * exp_ch5.adb:
32752         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
32753         composites. This allows use of component clauses that are not byte
32754         aligned.
32755
32756         * sem_prag.adb:
32757         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
32758         is an attempt to pack an array of atomic objects.
32759
32760         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
32761
32762 2003-10-27  Pascal Obry  <obry@gnat.com>
32763
32764         * g-dirope.adb:
32765         (Basename): Check for drive letters in a pathname only on DOS based OS.
32766
32767 2003-10-27  Vincent Celier  <celier@gnat.com>
32768
32769         * make.adb:
32770         (Gnatmake): When unable to change dir to the object dir, display the
32771         content of the parent dir of the obj dir, to try to understand why this
32772         happens.
32773
32774 2003-10-27  GNAT Script  <nobody@gnat.com>
32775
32776         * Make-lang.in: Makefile automatically updated
32777
32778 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
32779
32780         * sem_ch12.adb:
32781         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
32782         should not be done in Save/Restore_Scope_Stack, because it is performed
32783         locally.
32784
32785         * sem_ch8.adb:
32786         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
32787         whether use clauses should be removed/restored.
32788
32789         * sem_ch8.ads:
32790         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
32791         whether use clauses should be removed/restored.
32792
32793 2003-10-26  Andreas Jaeger  <aj@suse.de>
32794
32795         * Makefile.in: Remove duplicated lines.
32796
32797 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
32798
32799         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
32800         minimize the differences with ACT tree.
32801
32802         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
32803         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
32804         Gnatvsn.Gnat_Static_Version_String to reduce differences between
32805         ACT and FSF trees.
32806
32807 2003-10-24  Pascal Obry  <obry@gnat.com>
32808
32809         PR ada/12014
32810         * adadecode.c (ostrcpy): New function.
32811         (__gnat_decode): Use ostrcpy of strcpy.
32812         (has_prefix): Set first parameter a const.
32813         (has_suffix): Set first parameter a const.
32814         Update copyright notice. Fix source name in header.
32815         Removes a trailing space.
32816
32817 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
32818
32819         * exp_disp.adb:
32820         Remove the test against being in No_Run_Time_Mode before generating a
32821         call to Register_Tag. It is redundant with the test against the
32822         availability of the function Register_Tag.
32823
32824 2003-10-24  Vincent Celier  <celier@gnat.com>
32825
32826         * g-catiio.adb: (Month_Name): Correct spelling of February
32827
32828         * make.adb: (Mains): New package
32829         (Initialize): Call Mains.Delete
32830         (Gnatmake): Check that each main on the command line is a source of a
32831         project file and, if there are several mains, each of them is a source
32832         of the same project file.
32833         (Gnatmake): When a foreign language is specified in attribute Languages,
32834         no main is specified on the command line and attribute Mains is not
32835         empty, only build the Ada main. If there is no Ada main, just compile
32836         the Ada sources and their closure.
32837         (Gnatmake): If a main is specified on the command line with directory
32838         information, check that the source exists and, if it does, that the path
32839         is the actual path of a source of a project.
32840
32841         * prj-env.adb:
32842         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
32843         Full_Path is True, return the full path instead of the simple file name.
32844         (Project_Of): New function
32845
32846         * prj-env.ads:
32847         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
32848         defaulted to False.
32849         (Project_Of): New function
32850
32851 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
32852
32853         * Makefile.generic:
32854         Ensure objects of main project are always checked and rebuilt if needed.
32855         Set CC to gcc by default.
32856         Prepare new handling of link by creating a global archive (not activated
32857         yet).
32858
32859         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
32860         stringt.h: Update copyright notice. Remove trailing blanks.
32861         Fix source name in header.
32862
32863 2003-10-24  Robert Dewar  <dewar@gnat.com>
32864
32865         * sem_ch12.adb: Minor reformatting
32866
32867         * sem_ch3.adb:
32868         Minor reformatting (including new function return style throughout)
32869
32870         * sem_ch3.ads:
32871         Minor reformatting (including new function return style throughout)
32872
32873 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
32874
32875         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
32876         stringt.h: Update copyright notice. Remove trailing blanks.
32877         Fix source name in header.
32878
32879 2003-10-24  GNAT Script  <nobody@gnat.com>
32880
32881         * Make-lang.in: Makefile automatically updated
32882
32883 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
32884
32885         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
32886         stringt.h: Convert to ISO C90 declarations and definitions.
32887
32888 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
32889
32890         PR ada/11978
32891         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
32892         External_Tag attribute definition clauses.
32893
32894 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
32895
32896         PR ada/7613
32897         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
32898         child unit, generate a fully qualified name to avoid spurious errors
32899         when the context contains renamings of different child units with
32900         the same simple name.
32901
32902         * exp_dbug.ads: Add documentation on name qualification for renamings
32903         of child units.
32904
32905 2003-10-23  Robert Dewar  <dewar@gnat.com>
32906
32907         * g-regpat.ads, g-regpat.adb: Minor reformatting
32908
32909 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
32910
32911         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
32912
32913 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32914
32915         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
32916         Machine call.
32917
32918         * urealp.h: (Machine): Update to proper definition.
32919
32920 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
32921
32922         * init.c, adaint.c: Minor reformatting.
32923
32924 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
32925
32926         * adaint.c (w32_epoch_offset): Define static const at file level.
32927         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
32928         rather than t_create, t_access in call to GetFileTime. Use union
32929         to convert between FILETIME and  unsigned long long.
32930         (__gnat_file_time_name): Test for invalid file handle.
32931         (__gnat_set_filetime_name): Support win32 targets using
32932         w32api SetFileTime.
32933
32934 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
32935
32936         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
32937
32938         * ctrl_c.c (__gnat_int_handler): Remove declaration.
32939
32940         * decl.c (creat_concat_name):  Const-ify prefix.
32941
32942         * adaint.c: Include ctype.h if __MINGW32__.
32943         (__gnat_readlink): Mark arguments as possibly unused.
32944         (__gnat_symlink): Likewise.
32945         (__gnat_is_symbolic_link): Likewise.
32946         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
32947         declaration
32948         (__gnat_file_time_name): Don't declare struct stat statbuf when
32949         not needed.
32950         (__gnat_is_absolute_path): Add parenthesis around condition of
32951         'if' statement to avoid warning.
32952         (__gnat_plist_init): Specify void as parameter.
32953         (plist_enter): Likewise.
32954         (plist_leave): Likewise.
32955         (remove_handle): Make static. Initialize prev.
32956
32957 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
32958
32959         PR ada/10110
32960         * Makefile.in: Disable build of gnatpsta.
32961         * cstreams.c (__gnat_full_name): Minor improvements and clean up
32962         of previous change.
32963
32964 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
32965
32966         * tracebak.c (MAX): Avoid redefinition warning.
32967
32968         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
32969         Change msg to const char *.
32970         (__gnat_install_handler): Remove ss, unused.
32971         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
32972         to const char *.
32973         * cstreams.c (__gnat_full_name): Declare p only when used.
32974         (__gnat_full_name) [sgi] Return buffer.
32975
32976 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
32977
32978         * mingw32.h: New file.
32979         * gnat_wrapper.adb: New file.
32980
32981 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
32982
32983         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
32984         string match a pre compiled regular expression (the corresponding
32985         version of the function working on a raw regular expression)
32986         Fix typos in various comments
32987         Update copyright notice in spec
32988
32989 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
32990
32991         * exp_ch3.adb:
32992         (Component_Needs_Simple_Initialization): Return False when the type is a
32993         packed bit array. Revise spec comments to document this case.
32994
32995         * exp_prag.adb:
32996         (Expand_Pragma_Import): Set any expression on the imported object to
32997         empty to avoid initializing imported objects (in particular this
32998         covers the case of zero-initialization of bit arrays).
32999         Update copyright notice.
33000
33001 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
33002
33003         * sem_ch12.adb:
33004         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
33005         a subunit is missing.
33006         (Instantiate_Subprogram_Body): If body of function is missing, set type
33007         of return expression explicitly in dummy body, to prevent cascaded
33008         errors when a subunit is missing.
33009         Fixes PR 5677.
33010
33011         * sem_ch3.adb:
33012         (Access_Subprogram_Declaration): Verify that return type is valid.
33013         Fixes PR 8693.
33014
33015         * sem_elab.adb:
33016         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
33017         generic.
33018         Fixes PR 12318.
33019
33020         * sem_util.adb:
33021         (Corresponding_Discriminant): If the scope of the discriminant is a
33022         private type without discriminant, use its full view.
33023         Fixes PR 8247.
33024
33025 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
33026
33027         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
33028         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
33029         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
33030         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
33031         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
33032         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
33033         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
33034         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
33035         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
33036         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
33037         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
33038         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
33039         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
33040         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
33041         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
33042         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
33043         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
33044         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
33045         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
33046         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
33047         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
33048         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
33049         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
33050         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
33051         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
33052         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
33053         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
33054         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
33055         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
33056         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
33057         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
33058         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
33059         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
33060         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
33061         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
33062         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
33063         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
33064         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
33065         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
33066         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
33067         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
33068         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
33069         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
33070         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
33071         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
33072         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
33073         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
33074         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
33075         vms_conv.ads, vms_conv.adb, vms_data.ads,
33076         vxaddr2line.adb: Files added. Merge with ACT tree.
33077
33078         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
33079         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
33080         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
33081         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
33082         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
33083         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
33084         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
33085         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
33086         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
33087         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
33088
33089         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
33090         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
33091         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
33092         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
33093         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
33094         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
33095         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
33096         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
33097         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
33098         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
33099         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
33100         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
33101         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
33102         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
33103         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
33104         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
33105         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
33106         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
33107         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
33108         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
33109         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
33110         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
33111         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
33112         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
33113         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
33114         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
33115         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
33116         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
33117         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
33118         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
33119         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
33120         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
33121         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
33122         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
33123         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
33124         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
33125         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
33126         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
33127         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
33128         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
33129         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
33130         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
33131         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
33132         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
33133         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
33134         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
33135         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
33136         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
33137         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
33138         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
33139         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
33140         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
33141         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
33142         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
33143         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
33144         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
33145         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
33146         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
33147         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
33148         checks.adb, checks.ads, cio.c, comperr.adb,
33149         comperr.ads, csets.adb, cstand.adb, cstreams.c,
33150         debug_a.adb, debug_a.ads, debug.adb, decl.c,
33151         einfo.adb, einfo.ads, errout.adb, errout.ads,
33152         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
33153         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
33154         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
33155         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
33156         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
33157         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
33158         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
33159         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
33160         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
33161         fe.h, fmap.adb, fmap.ads, fname.adb,
33162         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
33163         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
33164         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
33165         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
33166         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
33167         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
33168         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
33169         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
33170         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
33171         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
33172         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
33173         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
33174         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
33175         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
33176         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
33177         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
33178         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
33179         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
33180         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
33181         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
33182         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
33183         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
33184         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
33185         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
33186         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
33187         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
33188         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
33189         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
33190         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
33191         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
33192         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
33193         layout.adb, lib.adb, lib.ads, lib-list.adb,
33194         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
33195         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
33196         link.c, live.adb, make.adb, make.ads,
33197         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
33198         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
33199         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
33200         misc.c, mkdir.c, mlib.adb, mlib.ads,
33201         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
33202         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
33203         namet.adb, namet.ads, namet.h, nlists.ads,
33204         nlists.h, nmake.adt, opt.adb, opt.ads,
33205         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
33206         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
33207         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
33208         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
33209         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
33210         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
33211         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
33212         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
33213         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
33214         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
33215         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
33216         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
33217         prj-util.adb, prj-util.ads, raise.c, raise.h,
33218         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
33219         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
33220         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
33221         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
33222         scans.ads, scn.adb, scn.ads, s-crc32.adb,
33223         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
33224         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
33225         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
33226         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
33227         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
33228         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
33229         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
33230         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
33231         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
33232         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
33233         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
33234         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
33235         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
33236         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
33237         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
33238         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
33239         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
33240         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
33241         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
33242         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
33243         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
33244         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
33245         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
33246         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
33247         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
33248         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
33249         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
33250         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
33251         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
33252         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
33253         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
33254         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
33255         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
33256         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
33257         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
33258         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
33259         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
33260         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
33261         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
33262         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
33263         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
33264         stringt.adb, stringt.ads, stringt.h, style.ads,
33265         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
33266         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
33267         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
33268         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
33269         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
33270         table.adb, table.ads, targparm.adb, targparm.ads,
33271         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
33272         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
33273         ttypes.ads, types.ads, types.h, uintp.adb,
33274         uintp.ads, uintp.h, uname.adb, urealp.adb,
33275         urealp.ads, urealp.h, usage.adb, utils2.c,
33276         utils.c, validsw.adb, validsw.ads, widechar.adb,
33277         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
33278         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
33279         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
33280         gnatvsn.ads: Merge with ACT tree.
33281
33282         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
33283
33284 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
33285
33286         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
33287         (gnat_ug_vmx.info): Likewise.
33288         (gnat_ug_vxw.info): Likewise.
33289         (gnat_ug_wnt.info): Likewise.
33290         (gnat_rm.info): Likewise.
33291         (gnat-style.info): Likewise.
33292
33293         * Make-lang.in (ada.install-info): Remove target.
33294         (info): New target.
33295         (install-info): Likewise.
33296         (gnat_ug_unx.info): Simplify rule.
33297         (gnat_ug_vmx.info): Likewise.
33298         (gnat_ug_vxw.info): Likewise.
33299         (gnat_ug_wnt.info): Likewise.
33300         (gnat_rm.info): Likewise.
33301         (gnat-style.info): Likewise.
33302
33303 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
33304
33305         * Make-lang.in: Replace uses of $(target_alias) with
33306         $(target_noncanonical).
33307         * ada/Makefile.in: Remove unused mention of $(target_alias).
33308
33309 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
33310
33311         * Make-lang.in (ada.info): Replace with ...
33312         (info): ... this.
33313         (ada.dvi): Replace with ...
33314         (dvi): ... this.
33315
33316 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
33317
33318         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
33319         initialize dconstp5 and dconstmp5.
33320
33321 2003-09-28  Richard Henderson  <rth@redhat.com>
33322
33323         * trans.c (tree_transform): Update call to expand_asm_operands.
33324
33325 2003-09-21  Richard Henderson  <rth@redhat.com>
33326
33327         * trans.c, utils.c: Revert.
33328
33329 2003-09-21  Richard Henderson  <rth@redhat.com>
33330
33331         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
33332         change to const.
33333
33334 2003-09-04  Michael Matz  <matz@suse.de>
33335
33336         * misc.c: Include "target.h".
33337         * Make-lang.in (misc.o): Add dependency on target.h.
33338
33339 2003-09-03  DJ Delorie  <dj@redhat.com>
33340
33341         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
33342         hook.
33343
33344 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
33345
33346         * Makefile.in: Update substitutions to match changes to
33347         configure.  Use include directives instead of @-insertions
33348         to read in host and target fragments.  Add a rule to
33349         regenerate ada/Makefile.
33350
33351 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
33352
33353         * lang-options.h: Remove.
33354         * lang.opt: Add help text.
33355
33356 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
33357
33358         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
33359         calls.
33360
33361 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
33362
33363         * misc.c (gnat_handle_option): Don't handle filenames.
33364
33365 2003-07-04  H.J. Lu  <hongjiu.lu@intel.com>
33366
33367         * Make-lang.in: Replace PWD with PWD_COMMAND.
33368         * Makefile.adalib: Likewise.
33369         * Makefile.in: Likewise.
33370
33371 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
33372
33373         * misc.c (gnat_argv): Revert last change.
33374         (gnat_handle_option, gnat_init_options): Copy arguments.
33375
33376 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
33377
33378         * misc.c (gnat_argv): Make const.
33379
33380 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
33381
33382         * misc.c (save_argc, save_argv): Keep non-static!
33383
33384 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
33385
33386         * misc.c (save_argc, save_argv): Make static.
33387         (gnat_init_options): New prototype.
33388         (gnat_init_options): Update.
33389
33390 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
33391
33392         * gnat_ug.texi: Remove unlikely characters from @vars.
33393         * gnat_ug_vms.texi: Regenerate.
33394
33395 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
33396
33397         * misc.c (record_code_position): Adjust emit_note call.
33398
33399 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
33400
33401         * misc.c (gnat_handle_option): Don't check for missing arguments.
33402
33403 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
33404
33405         * utils.c (end_subprog_body): Adjust expand_function_end call.
33406
33407 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
33408
33409         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
33410         Bind_Main_Program.
33411
33412 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
33413
33414         * lang.opt: Declare Ada.
33415         * misc.c (gnat_init_options): Update.
33416
33417 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
33418
33419         * utils.c (begin_subprog_body): Adjust init_function_start call.
33420
33421 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
33422
33423         * Make-lang.in: Update to use options.c and options.h.
33424         * misc.c: Include options.h not aoptions.h.
33425         (gnat_handle_option): Abort on unrecognized switch.
33426         (gnat_init_options): Request Ada switches.
33427
33428 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
33429
33430         * lang.opt: Add -Wall.
33431         * misc.c (gnat_handle_option): Handle it.
33432
33433 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
33434
33435         * misc.c (gnat_handle_option): Fix warnings.
33436
33437 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
33438
33439         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
33440
33441 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
33442
33443         * Make-lang.in: Update to handle command-line options.
33444         * lang.opt: New file.
33445         * misc.c: Include aoptions.h.
33446         (cl_options_count, cl_options): Remove.
33447         (gnat_handle_option): New.
33448         (gnat_decode_option): Remove.
33449         (LANG_HOOKS_DECODE_OPTION): Remove.
33450         (LANG_HOOKS_HANDLE_OPTION): Override.
33451
33452 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
33453
33454         * init.c, misc.c, trans.c, utils.c: Remove dead code.
33455
33456 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
33457
33458         * Makefile.in: Replace "host_canonical" with "host" for autoconf
33459         substitution.
33460
33461 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
33462
33463         * Make-lang.in: Update.
33464         * misc.c: Include opts.h. Define cl_options_count and cl_options.
33465
33466 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
33467
33468         * misc.c (gnat_init_options): Update.
33469
33470 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
33471
33472         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
33473         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
33474         __attribute__ ((__unused__)).
33475
33476 2003-06-05  Jan Hubicka  <jh@suse.cz>
33477
33478         * Make-lang.in:  Add support for stageprofile and stagefeedback
33479
33480 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
33481
33482         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
33483         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
33484
33485 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
33486
33487         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
33488         Remove non-VMS directive.
33489         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
33490         alternatives.
33491         (Examples of gnatls Usage): Remove VMS alternative.
33492
33493 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
33494
33495         PR ada/9953
33496         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
33497         and turn ZCX_By_Default back to False since the underlying support
33498         is not quite there yet.
33499
33500 2003-06-01  Andreas Jaeger  <aj@suse.de>
33501
33502         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
33503         and ROUND_TYPE_SIZE_UNIT.
33504
33505 2003-05-22   Geert Bosch  <bosch@gnat.com>
33506
33507         * gnat_rm.texi : Remove reference to Ada Core Technologies.
33508
33509 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
33510
33511         * trans.c (tree_transform): Use location_t and input_location
33512         directly.
33513         (build_unit_elab): Likewise.
33514         * utils.c (create_label_decl): Likewise.
33515
33516 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
33517
33518         * trans.c (tree_transform, build_unit_elab,
33519         set_lineno): Rename lineno to input_line.
33520         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
33521         end_subprog_body): Likewise.
33522         * utils2.c (build_call_raise): Likewise.
33523
33524 2003-05-01  Laurent Guerby  <guerby@acm.org>
33525
33526         PR ada/10546
33527         * 5iosinte.ads: Increase pthread_cond_t size to match recent
33528         LinuxThread and NPTL version, merge from ACT.
33529
33530 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
33531
33532         * utils.c (convert): No need to clear TREE_CST_RTL.
33533
33534 2003-04-23   Geert Bosch  <bosch@gnat.com>
33535
33536         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
33537         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
33538         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
33539         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
33540         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
33541         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
33542         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
33543         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
33544         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
33545         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
33546         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
33547         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
33548         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
33549         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
33550         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
33551         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
33552         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
33553         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
33554         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
33555         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
33556         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
33557         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
33558         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
33559         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
33560         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
33561         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
33562         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
33563         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
33564         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
33565         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
33566         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
33567         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
33568         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
33569         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
33570         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
33571         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
33572         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
33573         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
33574         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
33575         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
33576         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
33577         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
33578         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
33579         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
33580         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
33581         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
33582         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
33583         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
33584         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
33585         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
33586         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
33587         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
33588         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
33589         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
33590         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
33591         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
33592         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
33593         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
33594         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
33595         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
33596         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
33597         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
33598         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
33599         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
33600         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
33601         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
33602         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
33603         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
33604         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
33605         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
33606         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
33607         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
33608         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
33609         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
33610         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
33611         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
33612         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
33613         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
33614         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
33615         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
33616         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
33617         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
33618         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
33619         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
33620         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
33621         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
33622         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
33623         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
33624         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
33625         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
33626         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
33627         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
33628         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
33629         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
33630         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
33631         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
33632         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
33633         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
33634         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
33635         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
33636         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
33637         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
33638         ali.adb, ali.ads, alloc.ads, argv.c,
33639         atree.adb, atree.ads, atree.h, aux-io.c,
33640         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
33641         binde.adb, binde.ads, binderr.adb, binderr.ads,
33642         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
33643         butil.adb, butil.ads, cal.c, calendar.ads,
33644         casing.adb, casing.ads, ceinfo.adb, checks.adb,
33645         checks.ads, cio.c, comperr.adb, comperr.ads,
33646         config-lang.in, csets.adb, csets.ads, csinfo.adb,
33647         cstand.adb, cstand.ads, cuintp.c, debug.adb,
33648         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
33649         dec-io.ads, dec.ads, deftarg.c, directio.ads,
33650         einfo.adb, einfo.ads, elists.adb, elists.ads,
33651         elists.h, errno.c, errout.adb, errout.ads,
33652         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
33653         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
33654         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
33655         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
33656         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
33657         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
33658         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
33659         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
33660         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
33661         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
33662         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
33663         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
33664         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
33665         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
33666         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
33667         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
33668         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
33669         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
33670         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
33671         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
33672         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
33673         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
33674         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
33675         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
33676         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
33677         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
33678         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
33679         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
33680         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
33681         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
33682         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
33683         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
33684         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
33685         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
33686         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
33687         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
33688         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
33689         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
33690         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
33691         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
33692         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
33693         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
33694         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
33695         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
33696         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
33697         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
33698         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
33699         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
33700         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
33701         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
33702         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
33703         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
33704         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
33705         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
33706         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
33707         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
33708         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
33709         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
33710         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
33711         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
33712         lib.adb, lib.ads, live.adb, live.ads,
33713         machcode.ads, make.adb, make.ads, makeusg.adb,
33714         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
33715         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
33716         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
33717         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
33718         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
33719         mlib.ads, namet.adb, namet.ads, nlists.adb,
33720         nlists.ads, opt.adb, opt.ads, osint-b.adb,
33721         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
33722         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
33723         osint.ads, output.adb, output.ads, par-ch10.adb,
33724         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
33725         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
33726         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
33727         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
33728         par-tchk.adb, par-util.adb, par.adb, par.ads,
33729         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
33730         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
33731         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
33732         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
33733         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
33734         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
33735         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
33736         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
33737         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
33738         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
33739         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
33740         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
33741         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
33742         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
33743         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
33744         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
33745         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
33746         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
33747         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
33748         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
33749         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
33750         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
33751         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
33752         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
33753         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
33754         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
33755         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
33756         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
33757         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
33758         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
33759         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
33760         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
33761         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
33762         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
33763         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
33764         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
33765         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
33766         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
33767         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
33768         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
33769         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
33770         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
33771         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
33772         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
33773         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
33774         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
33775         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
33776         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
33777         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
33778         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
33779         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
33780         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
33781         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
33782         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
33783         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
33784         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
33785         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
33786         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
33787         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
33788         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
33789         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
33790         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
33791         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
33792         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
33793         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
33794         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
33795         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
33796         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
33797         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
33798         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
33799         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
33800         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
33801         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
33802         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
33803         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
33804         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
33805         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
33806         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
33807         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
33808         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
33809         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
33810         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
33811         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
33812         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
33813         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
33814         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
33815         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
33816         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
33817         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
33818         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
33819         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
33820         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
33821         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
33822         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
33823         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
33824         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
33825         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
33826         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
33827         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
33828         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
33829         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
33830         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
33831         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
33832         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
33833         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
33834         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
33835         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
33836         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
33837         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
33838         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
33839         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
33840         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
33841         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
33842         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
33843         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
33844         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
33845         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
33846         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
33847         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
33848         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
33849         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
33850         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
33851         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
33852         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
33853         snames.ads, sprint.adb, sprint.ads, stand.adb,
33854         stand.ads, stringt.adb, stringt.ads, style.adb,
33855         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
33856         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
33857         switch-m.ads, switch.adb, switch.ads, system.ads,
33858         table.adb, table.ads, targparm.adb, targparm.ads,
33859         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
33860         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
33861         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
33862         ttypef.ads, ttypes.ads, types.adb, types.ads,
33863         uintp.adb, uintp.ads, uname.adb, uname.ads,
33864         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
33865         usage.adb, usage.ads, validsw.adb, validsw.ads,
33866         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
33867         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
33868         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
33869         formatting and other trivial changes from ACT.
33870
33871 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
33872
33873         * gigi.h, utils2.c (build_constructor):
33874         Rename gnat_build_constructor. Use build_constructor.
33875         * decl.c (gnat_to_gnu_entity)
33876         * trans.c (tree_transform, pos_to_constructor, extract_values)
33877         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
33878         (unchecked_convert)
33879         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
33880         (fill_vms_descriptor):
33881         Update to match.
33882
33883 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
33884
33885         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
33886         * misc.c (gnat_tree_size): New function.
33887         (LANG_HOOKS_TREE_SIZE): Override.
33888
33889 2003-04-03  Jason Merrill  <jason@redhat.com>
33890
33891         * misc.c (gnat_adjust_rli): #if 0.
33892
33893 2003-03-31   Geert Bosch  <bosch@gnat.com>
33894
33895         PR ada/10020
33896         * link.c : Fix misspelled "const" keyword
33897
33898 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
33899
33900         PR c++/7086
33901         * utils2.c: Adjust calls to put_var_into_stack.
33902
33903 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
33904
33905         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
33906
33907 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
33908
33909         * misc.c (gnat_init): Update for new prototype.
33910
33911 2003-03-05  Olivier Hainque  <hainque@gnat.com>
33912
33913         ada/9961
33914         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
33915         warning, and fix return type for the IN_RTS && !SJLJ case.
33916
33917 2003-03-04  Tom Tromey  <tromey@redhat.com>
33918
33919         * Make-lang.in (ada.tags): New target.
33920
33921 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
33922
33923         ada/9911
33924         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
33925         wrapper, which name remains constant whatever underlying GCC
33926         scheme.
33927
33928         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
33929         the stable interface needed for a-except.
33930
33931 2003-03-02  Andreas Jaeger  <aj@suse.de>
33932
33933         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
33934         gnat_ug_wnt.texi: Regenerate.
33935
33936 2003-03-02  Laurent Guerby  <guerby@acm.org>
33937
33938         * Makefile.in (install-gnatlib): Match previous change there
33939         so it works.
33940
33941 2003-02-28  Andreas Schwab  <schwab@suse.de>
33942
33943         * Make-lang.in (install-gnatlib): Change to ada directory before
33944         running make instead of using ada/Makefile directly.
33945
33946 2003-02-18  Ben Elliston  <bje@redhat.com>
33947
33948         Part of PR ada/9406
33949         * gnat_ug.texi (Binder output file): Grammar fix.
33950
33951 2003-02-18  Ben Elliston  <bje@redhat.com>
33952
33953         PR other/7350
33954         * 5qtaprop.adb (Sleep): Fix typo in comment.
33955
33956 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
33957
33958         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
33959         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
33960         gnat_ug_wnt.texi: Regenerate.
33961
33962 2003-02-03  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
33963
33964         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
33965         be created if necessary.
33966         (ada.install-common): Let $(DESTDIR)$(bindir) be created
33967         if necessary.  Remove erroneous and redundant gnatchop
33968         installation commands.  Test for gnatdll before attempting
33969         to install it.
33970         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
33971         and gnatdll from all plausible locations.
33972
33973 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
33974
33975         * utils2.c (build_unary_op): Don't check flag_volatile.
33976         * gnat_ug.texi: Remove -fvolatile from example.
33977         * gnat_ug_vxw.texi: Likewise.
33978
33979 2003-01-29  Laurent Guerby  <guerby@acm.org>
33980
33981         PR ada/8344
33982         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
33983         * Makefile.in: match previous change.
33984         * Make-lang.in: match previous change.
33985
33986 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
33987
33988         * 5rosinte.ads: Add SIGXCPU.
33989         * 5rtpopsp.adb: New file.
33990         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
33991         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
33992         specific file 5rtpopsp.adb.
33993         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
33994         is likely needed for all newlib targets.
33995         * init.c: Add RTEMS specific version of __gnat_initialize().
33996
33997 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
33998
33999         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
34000
34001 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34002
34003         * init.c (__gnat_error_handler): Make msg const.
34004
34005         * gmem.c (convert_addresses): Move declaration ...
34006         * adaint.h: ... here.
34007         * adaint.c (convert_addresses): Adapt addrs type to match
34008         prototype.
34009
34010         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
34011
34012 2003-01-24  Andreas Schwab  <schwab@suse.de>
34013
34014         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
34015         size_t to avoid warning.
34016
34017 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
34018
34019         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
34020
34021 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
34022
34023         * gnat_rm.texi: Remove RCS version number.
34024
34025         * ada-tree.h (union lang_tree_node): Add chain_next option.
34026
34027 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
34028
34029         * Make-lang.in (ada.install-info, ada.install-common,
34030         ada.uninstall): Prepend $(DESTDIR) to the destination
34031         directory in all (un)installation commands.
34032         * Makefile.in (install-gnatlib, install-rts): Ditto.
34033
34034 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
34035
34036         * gnat_rm.texi, gnat_ug.texi: Use @copying.
34037         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
34038         gnat_ug_wnt.texi: Regenerate.
34039
34040 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
34041
34042         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
34043         only.
34044         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
34045         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
34046         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
34047         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
34048         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
34049         $(srcdir)/doc/include/gcc-common.texi.
34050
34051 2002-12-15   Geert Bosch  <bosch@gnat.com>
34052
34053         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
34054
34055 2002-12-14   Geert Bosch  <bosch@gnat.com>
34056
34057         PR ada/5690
34058         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
34059         case of a body created for a Renaming_As_Body, on which
34060         conformance checks are not performed.
34061
34062 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
34063
34064         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
34065         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
34066         not already included.
34067         * Make-lang.in: Update dependencies.
34068
34069 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
34070         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
34071         solution to buffer overflow bug on GNU/Linux.
34072
34073 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
34074
34075         PR ada/5856
34076         PR ada/6919
34077         * bindgen.adb: Remove all references to Public_Version.
34078         * comperr.adb: Remove all references to Public_Version and
34079         GNATPRO_Version; correct bug reporting instructions.
34080         * comperr.ads: Change to match bug box.
34081         * gnatvsn.ads: Remove all references to Public version and
34082         GNATPRO version.
34083
34084 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
34085
34086         PR ada/6919
34087         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
34088         GNU/Linux.
34089
34090         PR ada/6558
34091         * config-lang.in: Remove diff_excludes.
34092
34093 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
34094
34095         PR ada/8358
34096         * trans.c (gnu_pending_elaboration_lists): New GC root.
34097         (build_unit_elab): Use..
34098
34099 2002-10-30   Geert Bosch  <bosch@gnat.com>
34100
34101         PR ada/6558
34102         * misc.c : Include optabs.h
34103
34104         * Make-lang.in (misc.o): Add dependency on optabs.h
34105
34106 2002-10-29   Geert Bosch  <bosch@gnat.com>
34107
34108         PR ada/6558
34109         * Make-lang.in (gnatbind): Depend on CONFIG_H
34110
34111 2002-10-29  Geert bosch  <bosch@gnat.com>
34112
34113         PR ada/6558
34114         * misc.c: Unrevert misc.c (1.13)
34115
34116 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
34117
34118         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
34119         maintainership comments.
34120
34121 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
34122
34123         PR ada/5904
34124         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
34125         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
34126         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
34127         7staprop.adb: Correct statements in comments about
34128         maintainership of GNAT.
34129
34130         PR ada/5904
34131         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
34132         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
34133         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
34134         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
34135         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
34136         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
34137         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
34138         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
34139         comments about maintainership of GNAT.
34140
34141         PR ada/6919 (forward port of patch for PR ada/5904)
34142         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
34143         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
34144         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
34145         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
34146         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
34147         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
34148         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
34149         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
34150         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
34151         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
34152         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
34153         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
34154         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
34155         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
34156         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
34157         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
34158         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
34159         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
34160         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
34161         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
34162         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
34163         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
34164         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
34165         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
34166         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
34167         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
34168         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
34169         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
34170         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
34171         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
34172         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
34173         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
34174         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
34175         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
34176         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
34177         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
34178         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
34179         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
34180         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
34181         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
34182         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
34183         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
34184         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
34185         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
34186         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
34187         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
34188         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
34189         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
34190         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
34191         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
34192         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
34193         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
34194         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
34195         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
34196         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
34197         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
34198         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
34199         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
34200         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
34201         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
34202         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
34203         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
34204         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
34205         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
34206         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
34207         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
34208         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
34209         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
34210         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
34211         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
34212         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
34213         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
34214         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
34215         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
34216         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
34217         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
34218         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
34219         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
34220         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
34221         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
34222         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
34223         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
34224         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
34225         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
34226         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
34227         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
34228         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
34229         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
34230         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
34231         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
34232         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
34233         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
34234         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
34235         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
34236         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
34237         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
34238         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
34239         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
34240         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
34241         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
34242         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
34243         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
34244         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
34245         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
34246         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
34247         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
34248         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
34249         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
34250         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
34251         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
34252         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
34253         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
34254         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
34255         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
34256         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
34257         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
34258         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
34259         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
34260         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
34261         par-endh.adb par-labl.adb par-load.adb par-prag.adb
34262         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
34263         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
34264         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
34265         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
34266         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
34267         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
34268         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
34269         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
34270         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
34271         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
34272         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
34273         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
34274         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
34275         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
34276         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
34277         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
34278         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
34279         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
34280         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
34281         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
34282         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
34283         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
34284         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
34285         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
34286         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
34287         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
34288         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
34289         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
34290         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
34291         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
34292         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
34293         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
34294         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
34295         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
34296         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
34297         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
34298         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
34299         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
34300         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
34301         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
34302         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
34303         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
34304         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
34305         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
34306         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
34307         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
34308         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
34309         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
34310         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
34311         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
34312         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
34313         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
34314         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
34315         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
34316         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
34317         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
34318         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
34319         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
34320         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
34321         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
34322         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
34323         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
34324         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
34325         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
34326         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
34327         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
34328         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
34329         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
34330         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
34331         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
34332         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
34333         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
34334         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
34335         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
34336         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
34337         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
34338         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
34339         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
34340         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
34341         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
34342         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
34343         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
34344         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
34345         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
34346         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
34347         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
34348         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
34349         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
34350         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
34351         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
34352         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
34353         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
34354         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
34355         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
34356         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
34357         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
34358         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
34359         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
34360         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
34361         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
34362         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
34363         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
34364         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
34365         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
34366         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
34367         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
34368         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
34369         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
34370         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
34371         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
34372         stringt.ads stringt.h style.adb style.ads stylesw.adb
34373         stylesw.ads switch.adb switch.ads sysdep.c system.ads
34374         table.adb table.ads targparm.adb targparm.ads targtyps.c
34375         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
34376         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
34377         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
34378         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
34379         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
34380         usage.ads utils.c utils2.c validsw.adb validsw.ads
34381         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
34382         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
34383         xtreeprs.adb: Correct statements in comments about maintainership
34384         of GNAT.
34385
34386 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
34387
34388         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
34389         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
34390         * gnatvsn.ads: Gnat_Version_String is now a function.
34391         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
34392         copy the C version_string into a String and return it.
34393         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
34394         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
34395         Remove pragma Ident (Gnat_Version_String).  If this was the
34396         sole use of package Gnatvsn, remove the with statement too.
34397         * gnat1drv.adb: Tweak -gnatv output.
34398
34399 2002-09-17  Richard Henderson  <rth@redhat.com>
34400
34401         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
34402         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
34403         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
34404         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
34405         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
34406         and real_2expN instead of a loop.
34407         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
34408         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
34409
34410 2002-08-25  Andre Leis  <a.leis@gmx.net>
34411             David Billinghurst  <David.Billinghurst@riotinto.com>
34412
34413         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
34414
34415 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34416
34417         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
34418         Remove $(CONFIG_H) dependency.
34419
34420 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
34421
34422         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
34423
34424 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34425
34426         * adadecode.c (ada_demangle): Use xstrdup in lieu of
34427         xmalloc/strcpy.
34428         * misc.c (gnat_decode_option): Likewise.
34429
34430 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
34431
34432         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
34433         function approach did not work well because of a side effect (the
34434         function call could reallocate the table which was being indexed
34435         using its result). Fixes ada/4851. [RESURRECTED]
34436
34437 2002-07-01  Roger Sayle  <roger@eyesopen.com>
34438
34439         * ada/utils.c (builtin_function): Accept an additional parameter.
34440
34441 2002-06-28  Andreas Jaeger  <aj@suse.de>
34442
34443         PR ada/7144
34444         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
34445         <adi@thur.de>.
34446
34447 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34448
34449         * Makefile.in (SHELL): Set to @SHELL@.
34450
34451 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34452
34453         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
34454         array size calculation.
34455
34456 2002-06-04  Andreas Jaeger  <aj@suse.de>
34457
34458         * Make-lang.in (gnatbind): Readd rule that has been lost in last
34459         patch.
34460
34461 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
34462
34463         Merge from pch-branch:
34464
34465         * config-lang.in (gtfiles): Add ada-tree.h.
34466         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
34467         (SET_TYPE_MODULUS): New.
34468         (SET_TYPE_INDEX): New.
34469         (SET_TYPE_DIGITS_VALUE): New.
34470         (SET_TYPE_RM_SIZE): New.
34471         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
34472         (SET_TYPE_ADA_SIZE): New.
34473         (SET_TYPE_ACTUAL_BOUNDS): New.
34474         (SET_DECL_CONST_CORRESPONDING_VAR): New.
34475         (SET_DECL_ORIGINAL_FIELD): New.
34476         (TREE_LOOP_ID): Correct typo.
34477         * decl.c: Use new macros.
34478         * utils.c: Include debug.h, use new macros.
34479         * utils2.c: Use new macros.
34480
34481         * ada-tree.h: Update all macros for new tree description.
34482         (struct tree_loop_id): New.
34483         (union lang_tree_node): New.
34484         (struct lang_decl): New.
34485         (struct lang_type): New.
34486         * misc.c (gnat_mark_tree): Delete.
34487         (LANG_HOOKS_MARK_TREE): Delete.
34488         * trans.c (tree_transform): No longer any need to cast
34489         for TREE_LOOP_ID.
34490
34491         * utils.c (struct language_function): New dummy structure.
34492
34493         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
34494         (misc.o): Likewise.
34495         (utils.o): Likewise; also gtype-ada.h.
34496         * Make-lang.in (gnat1): Add dependency on s-gtype.
34497         (gnatbind): Add dependency on $(CONFIG_H).
34498         * utils.c: Correct last #include.
34499         (stuct e_stack): Remove unnecessary 'static'.
34500         (mark_e_stack): Remove unused prototype.
34501
34502         * scn-nlit.adb: Remove whitespace after version number to
34503         keep lines under 80 chars.
34504         * snames.adb: Likewise.
34505         * treepr.ads: Likewise.
34506
34507         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
34508         (misc.o): Likewise.
34509         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
34510         * config-lang.in (gtfiles): New.
34511         * decl.c: Use gengtype for roots.
34512         * gigi.h: Use gengtype for roots.
34513         * trans.c: Use gengtype for roots.
34514         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
34515
34516 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
34517
34518         * misc.c (gnat_init): Adjust setting of internal_error_function.
34519
34520 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
34521
34522         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
34523         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
34524         gnat_ug_wnt.texi: Regenerate.
34525
34526 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
34527
34528         * 5ntaprop.adb (with System.OS_Primitives): Remove.
34529
34530         * cstreams.c (max_path_len): Move from here ...
34531         * adaint.c (__gnat_max_path_len): ... to here.
34532         * adaint.c (__gnat_max_path_len): Declare.
34533         * g-dirope.adb (Max_Path): Adjust.
34534         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
34535         * i-cstrea.ads (max_path_len): Adjust.
34536         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
34537         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
34538
34539         * Makefile.in, Make-lang.in: Documentation is now built in
34540         Make-lang.in.  Store Info and generated Texinfo files in the
34541         source directory.
34542         * gnat_ug.texi: Remove CVS keywords, correct version number.
34543         Set file name correctly.
34544
34545         * gnat_ug_*.texi: Add.
34546         * .cvsignore: Ignore generated Texinfo files.
34547
34548 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
34549
34550         * ada.h: Add MI guard macro.
34551         (SUBTYPE): Define constants with an anonymous enum, not static
34552         const variables.
34553         (IN): Cast constants to appropriate type before use.
34554
34555 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
34556
34557         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
34558         (experimental)".
34559
34560 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34561
34562         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
34563         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
34564         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
34565         (ALL_ADA_CFLAGS): Likewise.
34566         (ADA_INCLUDES): Likewise.
34567         Adapt for new working dir.
34568         (GNATBIND): Use Makefile.in version.
34569         (.SUFFIXES): Copy from Makefile.in.
34570         (ada-warn): Define.
34571         (.adb.o, .ads.o): Copy from Makefile.in.
34572         Added $(OUTPUT_OPTION).
34573         (GNAT1_C_OBJS): Moved from Makefile.in.
34574         Prefix with ada subdir.
34575         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
34576         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
34577         Adapt for new working dir.
34578         (EXTRA_GNATBIND_OBJS): Likewise.
34579         (ADA_BACKEND): Moved from Makefile.in.
34580         Renamed to avoid conflict with global BACKEND.
34581         Use that one.
34582         (TARGET_ADA_SRCS): Moved from Makefile.in.
34583         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
34584         Use ADA_BACKEND.
34585         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
34586         (ada_extra_files): Moved from Makefile.in.
34587         Prefix with ada subdir.
34588         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
34589         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
34590         (ada/nmake.ads): Likewise.
34591         (update-sources): Moved from Makefile.in.
34592         Prefix with ada subdir.
34593         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
34594         (ADA_TREE_H): Likewise.
34595         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
34596         (ada/memtrack.o): Likewise.
34597         (ada/adadecode.o): Likewise.
34598         Update dependencies.
34599         (ada/adaint.o): New.
34600         (ada/argv.o): Moved from Makefile.in.
34601         Prefix with ada subdir.
34602         Update dependencies.
34603         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
34604         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
34605         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
34606         Prefix with ada subdir.
34607         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
34608         (GNAT DEPENDENCIES): Regenerate.
34609         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
34610         toplevel Makefile.in.
34611         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
34612         (TARGET_ADA_SRCS): Removed.
34613         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
34614         (GNATBIND_OBJS): Likewise.
34615         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
34616         (BACKEND): Removed.
34617         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
34618         (TREE_H): Likewise.
34619         (ada_extra_files): Likewise.
34620         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
34621         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
34622         (update-sources): Likewise.
34623         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
34624         (ADA_TREE_H): Likewise.
34625         (adadecoce.o): Likewise.
34626         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
34627         (GNAT DEPENDENCIES): Likewise.
34628
34629 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34630
34631         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
34632         * Makefile.in: Likewise.
34633
34634 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34635
34636         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
34637         Restore $(CONFIG_H) and prefix.o dependencies.
34638         (ada.stage[1-4]): Depend on stage?-start.
34639
34640         * Makefile.in (b_gnatb.c): Depend on interfac.o.
34641
34642 2002-05-02  Jim Wilson  <wilson@redhat.com>
34643
34644         * utils.c (finish_record_type): Change record_size to record_type.
34645
34646 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
34647
34648         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
34649         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
34650         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
34651
34652 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
34653
34654         * misc.c (gnat_parse_file): Update.
34655
34656 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
34657
34658         * misc.c (gnat_init): Don't set lang_attribute_common.
34659
34660 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
34661
34662         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
34663
34664 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
34665
34666         * gnat_ug.texi: New file.
34667
34668         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
34669         instead of gfdl.texi
34670
34671         * xgnatug.adb, ug_words: New files.
34672
34673         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
34674         gnat_rm and gnat-style manuals.
34675
34676 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
34677
34678         * gigi.h (incomplete_type_error): Remove.
34679         * utils.c (incomplete_type_error): Remove.
34680
34681 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
34682
34683         * trans.c (tree_transform): Add has_scope argument to
34684         expand_start_stmt_expr.
34685
34686 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
34687
34688         * gigi.h (truthvalue_conversion): Rename.
34689         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
34690         * trans.c (tree_transform): Update.
34691         * utils2.c (truthvalue_conversion): Rename, update.
34692         (build_binary_op, build_unary_op): Update.
34693
34694 2002-04-04  Laurent Guerby  <guerby@acm.org>
34695
34696         * make.adb: Implement -margs, remove restriction about file name placement.
34697         * makeusg.adb: Documentation update.
34698         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
34699         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
34700
34701 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
34702
34703         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
34704         (builtin_function): Similarly.
34705
34706 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
34707
34708         * decl.c (gnat_to_gnu_entity): Update.
34709         * gigi.h (mark_addressable): Rename.
34710         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
34711         * trans.c (tree_transform): Update.
34712         * utils.c (create_var_decl): Update.
34713         * util2.c (build_binary_op, build_unary_op,
34714         fill_vms_descriptor): Update.
34715         (mark_addressable): Rename, update.
34716
34717 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
34718
34719         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
34720         Rename.
34721         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
34722         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
34723         * trans.c (tree_transform, convert_with_check): Update.
34724         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
34725         Rename.
34726
34727 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
34728
34729         * gigi.h (finish_incomplete_decl): Rename.
34730         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
34731         * utils.c (gnat_init_decl_processing): Don't set hook.
34732         (finish_incomplete_decl): Rename.
34733
34734 2002-03-29  Andreas Schwab  <schwab@suse.de>
34735
34736         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
34737         directory.
34738
34739 2001-03-28  Robert Dewar  <dewar@gnat.com>
34740
34741         * checks.ads:
34742         (Remove_Checks): New procedure
34743
34744         * checks.adb:
34745         (Remove_Checks): New procedure
34746
34747         * exp_util.adb:
34748         Use new Duplicate_Subexpr functions
34749         (Duplicate_Subexpr_No_Checks): New procedure
34750         (Duplicate_Subexpr_No_Checks_Orig): New procedure
34751         (Duplicate_Subexpr): Restore original form (checks duplicated)
34752         (Duplicate_Subexpr): Call Remove_Checks
34753
34754         * exp_util.ads:
34755         (Duplicate_Subexpr_No_Checks): New procedure
34756         (Duplicate_Subexpr_No_Checks_Orig): New procedure
34757         Add 2002 to copyright notice
34758
34759         * sem_util.adb: Use new Duplicate_Subexpr functions
34760
34761         * sem_eval.adb:
34762         (Eval_Indexed_Component): This is the place to call
34763         Constant_Array_Ref and to replace the value. We simply merge
34764         the code of this function in here, since it is now no longer
34765         used elsewhere. This fixes the problem of the back end not
34766         realizing we were clever enough to see that this was
34767         constant.
34768         (Expr_Val): Remove call to Constant_Array_Ref
34769         (Expr_Rep_Val): Remove call to Constant_Array_Ref
34770         Minor reformatting
34771         (Constant_Array_Ref): Deal with string literals (patch
34772         suggested by Zack Weinberg on the gcc list)
34773
34774 2001-03-28  Ed Schonberg  <schonber@gnat.com>
34775
34776         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
34777         Duplicate_Subexpr_Move_Checks.
34778
34779         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
34780         Duplicate_Subexpr_Move_Checks.
34781
34782         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
34783         value of array exists before retrieving it (it may a private
34784         protected component in a function).
34785
34786 2002-03-28   Geert Bosch  <bosch@gnat.com>
34787
34788         * prj-pp.adb : New file.
34789
34790         * prj-pp.ads : New file.
34791
34792 2002-03-28  Andreas Jaeger  <aj@suse.de>
34793
34794         * Makefile.in (stamp-sdefault): Fix path for Makefile.
34795
34796 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
34797
34798         * misc.c (gnat_expand_expr): Move prototype.
34799
34800 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
34801
34802         * misc.c (insert_default_attributes): Remove.
34803
34804 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
34805
34806         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
34807         (gnat_init): Don't set hook.
34808         (gnat_expand_expr): Fix prototype.
34809
34810 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
34811
34812         * misc.c (ggc_p): Remove.
34813
34814 2002-03-27  Geert Bosch  <bosch@gnat.com>
34815
34816         * prj-makr.ads, prj-makr.adb : New files.
34817
34818 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
34819
34820         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
34821         (lang_mark_tree): Make static, rename.
34822
34823 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
34824
34825         * misc.c (maybe_build_cleanup): Remove.
34826
34827 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
34828
34829         * gigi.h (yyparse): Remove.
34830
34831 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
34832
34833         From Ben Brosgol  <brosgol@gnat.com>
34834         * gnat_rm.texi: Sync with ACT version.
34835
34836 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
34837
34838         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
34839         (gnat_init): Remove old hook.
34840
34841 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
34842
34843         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
34844         (yyparse): Rename gnat_parse_file.
34845
34846 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
34847
34848         Delete all lines containing "$Revision:".
34849         * xeinfo.adb: Don't look for revision numbers.
34850         * xnmake.adb: Likewise.
34851         * xsinfo.adb: Likewise.
34852         * xsnames.adb: Likewise.
34853         * xtreeprs.adb: Likewise.
34854
34855 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34856
34857         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
34858         gnat_tree_code_name): Delete.
34859         (tree_code_type, tree_code_length, tree_code_name): Define.
34860         (gnat_init): Don't try to copy into the various tree_code
34861         arrays.
34862
34863 2002-03-11  Richard Henderson  <rth@redhat.com>
34864
34865         * Makefile.in (.NOTPARALLEL): Add fake tag.
34866
34867 2002-03-07  Geert Bosch  <bosch@gnat.com>
34868
34869         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
34870         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
34871         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
34872         switch-m.adb, switch-m.ads : New files.
34873
34874 2002-03-07  Geert Bosch  <bosch@gnat.com>
34875
34876         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
34877         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
34878         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
34879         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
34880         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
34881         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
34882         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
34883         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
34884         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
34885         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
34886         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
34887         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
34888         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
34889         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
34890         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
34891         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
34892         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
34893         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
34894         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
34895         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
34896         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
34897         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
34898         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
34899         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
34900         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
34901         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
34902         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
34903         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
34904         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
34905         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
34906         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
34907         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
34908         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
34909         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
34910         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
34911         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
34912         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
34913         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
34914         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
34915         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
34916         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
34917         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
34918         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
34919         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
34920         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
34921         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
34922         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
34923         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
34924         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
34925         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
34926         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
34927         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
34928         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
34929         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
34930         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
34931         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
34932         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
34933         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
34934         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
34935         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
34936         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
34937         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
34938         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
34939         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
34940         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
34941         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
34942         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
34943         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
34944         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
34945         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
34946         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
34947         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
34948         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
34949         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
34950         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
34951         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
34952         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
34953         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
34954         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
34955         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
34956         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
34957         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
34958         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
34959         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
34960         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
34961         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
34962         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
34963         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
34964         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
34965         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
34966         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
34967         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
34968         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
34969         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
34970         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
34971         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
34972         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
34973
34974         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
34975         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
34976         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
34977         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
34978
34979         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
34980         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
34981
34982         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
34983         to mdll-fil.ad[bs] and mdll-util.ad[bs]
34984
34985         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
34986         from mdllfile.ad[bs] and mdlltool.ad[bs]
34987
34988 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34989
34990         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
34991         lieu of explicit sizeof/sizeof.
34992
34993 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
34994
34995         * misc.c (copy_lang_decl): Remove.
34996
34997 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
34998
34999         * misc.c: Delete traditional-mode-related code copied from the
35000         C front end but not used, or used only to permit the compiler
35001         to link.
35002
35003 2002-02-07  Richard Henderson  <rth@redhat.com>
35004
35005         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
35006         * adaint.h (__gnat_to_gm_time): Update prototype.
35007
35008 2002-01-30  Richard Henderson  <rth@redhat.com>
35009
35010         * trans.c (tree_transform) [N_Loop_Statement]: Use
35011         expand_exit_loop_top_cond.
35012
35013 2001-12-23  Richard Henderson  <rth@redhat.com>
35014
35015         * utils.c (end_subprog_body): Push GC context around
35016         rest_of_compilation for nested functions.
35017
35018 2001-12-23  Richard Henderson  <rth@redhat.com>
35019
35020         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
35021
35022 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
35023
35024         * gnat-style.texi (Declarations and Types): Remove ancient style
35025         rule which was mandated by code generation issues.
35026
35027         * gnat-style.texi (header): Add @dircategory, @direntry.
35028         (title page): Remove date.
35029         (general) Add @./@: where approriate, and two spaces after the
35030         full stop at the end of a sentence.  Use @samp markup when
35031         referring concrete lexical entities (keywords, attribute names
35032         etc.), and @syntax for ARM grammar elements. Use @r for English
35033         text in comments.  Use @emph for emphasis.  Change "if-statements"
35034         etc. to "if statements" (without @samp). Break long lines.  Make
35035         casing of section names consistent.
35036         (Identifiers): Use @samp markup for variable names.
35037         (Comments): Use @samp markup for comment characters. Line-end
35038         comments may follow any Ada code, not just statements.  Fix
35039         misspelling of "Integer" as "integer".
35040         (Loop statements): Do not use variable name "I", use "J".
35041         (Subprogram Declarations): Document alignment.
35042         (Subprogram Bodies, Block statements): Document empty line before
35043         "begin".
35044
35045 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
35046
35047         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
35048         function approach did not work well because of a side effect (the
35049         function call could reallocate the table which was being indexed
35050         using its result). Fixes ada/4851.
35051
35052 2001-12-19  Robert Dewar  <dewar@gnat.com>
35053
35054         * bindgen.adb: Minor reformatting
35055
35056         * cstand.adb: Minor reformatting
35057
35058         * fmap.adb: Minor reformatting
35059         Change name from Add for Add_To_File_Map (Add is much too generic)
35060         Change Path_Name_Of to Mapped_Path_Name
35061         Change File_Name_Of to Mapped_File_Name
35062         Fix copyright dates in header
35063
35064         * fmap.ads:
35065         Change name from Add for Add_To_File_Map (Add is much too generic)
35066         Change Path_Name_Of to Mapped_Path_Name
35067         Change File_Name_Of to Mapped_File_Name
35068         Fix copyright dates in header
35069
35070         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
35071         Add use clause for Fmap.
35072
35073         * make.adb: Minor reformatting
35074
35075         * osint.adb: Minor reformatting.  Change of names in Fmap.
35076         Add use clause for Fmap.
35077
35078         * prj-env.adb: Minor reformatting
35079
35080         * prj-env.ads: Minor reformatting
35081
35082         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
35083         error found (there were odd exceptions to this general rule in
35084         -gnatec/-gnatem processing)
35085
35086 2001-12-19  Olivier Hainque  <hainque@gnat.com>
35087
35088         * raise.c (__gnat_eh_personality): Exception handling personality
35089         routine for Ada.  Still in rough state, inspired from the C++ version
35090         and still containing a bunch of debugging artifacts.
35091         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
35092         inspired from the C++ library.
35093
35094         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
35095         exception handling integration.
35096
35097 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
35098
35099         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
35100         (HIE_SOURCES): Add s-secsta.ad{s,b}.
35101         (HIE_OBJS): Add s-fat*.o
35102         (RAVEN_SOURCES): Remove files that are no longer required. Add
35103         interrupt handling files.
35104         (RAVEN_MOD): Removed, no longer needed.
35105
35106 2001-12-19  Robert Dewar  <dewar@gnat.com>
35107
35108         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
35109         Add 2001 to copyright date
35110
35111         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
35112         need to force universal inlining for these cases.
35113
35114 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
35115
35116         * s-taprob.adb: Minor clean ups so that this unit can be used in
35117         Ravenscar HI.
35118
35119         * exp_ch7.adb: Allow use of secondary stack in HI mode.
35120         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
35121
35122 2001-12-19  Vincent Celier  <celier@gnat.com>
35123
35124         * prj-tree.ads (Project_Node_Record): Add comments for components
35125         Pkg_Id and Case_Insensitive.
35126
35127 2001-12-19  Pascal Obry  <obry@gnat.com>
35128
35129         * g-socket.adb: Minor reformatting. Found while reading code.
35130
35131 2001-12-19  Robert Dewar  <dewar@gnat.com>
35132
35133         * prj-tree.ads: Minor reformatting
35134
35135 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
35136
35137         * config-lang.in (diff_excludes): Remove.
35138
35139 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35140
35141         * sem_res.adb (Resolve_Selected_Component): do not generate a
35142         discriminant check if the selected component is a component of
35143         the argument of an initialization procedure.
35144
35145         * trans.c (tree_transform, case of arithmetic operators): If result
35146         type is private, the gnu_type is the base type of the full view,
35147         given that the full view itself may be a subtype.
35148
35149 2001-12-17  Robert Dewar  <dewar@gnat.com>
35150
35151         * sem_res.adb: Minor reformatting
35152
35153         * trans.c (tree_transform, case N_Real_Literal): Add missing third
35154         parameter in call to Machine (unknown horrible effects from this
35155         omission).
35156
35157         * urealp.h: Add definition of Round_Even for call to Machine
35158         Add third parameter for Machine
35159
35160 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35161
35162         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
35163         predefined units in No_Run_Time mode.
35164
35165 2001-12-17  Richard Kenner  <kenner@gnat.com>
35166
35167         * misc.c (insn-codes.h): Now include.
35168
35169 2001-12-17  Olivier Hainque  <hainque@gnat.com>
35170
35171         * a-except.adb: Preparation work for future integration of the GCC 3
35172         exception handling mechanism
35173         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
35174         to factorize previous code sequences and make them externally callable,
35175         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
35176         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
35177         Use the new notification routines.
35178
35179 2001-12-17  Emmanuel Briot  <briot@gnat.com>
35180
35181         * prj-tree.ads (First_Choice_Of): Document the when others case
35182
35183 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
35184
35185         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
35186         HI-E mode, in order to support Ravenscar profile properly.
35187
35188         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
35189         mode on 32 bits targets.
35190
35191 2001-12-17  Vincent Celier  <celier@gnat.com>
35192
35193         * fmap.adb: Initial version.
35194
35195         * fmap.ads: Initial version.
35196
35197         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
35198         If search is successfully done, add to mapping.
35199
35200         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
35201
35202         * make.adb:
35203         (Gnatmake): Add new local variable Mapping_File_Name.
35204          Create mapping file when using project file(s).
35205          Delete mapping file before exiting.
35206
35207         * opt.ads (Mapping_File_Name): New variable
35208
35209         * osint.adb (Find_File): Use path name found in mapping, if any.
35210
35211         * prj-env.adb (Create_Mapping_File): New procedure
35212
35213         * prj-env.ads (Create_Mapping_File): New procedure.
35214
35215         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
35216         (Mapping_File)
35217
35218         * usage.adb: Add entry for new switch -gnatem.
35219
35220         * Makefile.in: Add dependencies for fmap.o.
35221
35222 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35223
35224         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
35225         is a package instantiation rewritten as a package body.
35226         (Install_Withed_Unit): Undo previous change, now redundant.
35227
35228 2001-12-17  Gary Dismuke  <dismukes@gnat.com>
35229
35230         * layout.adb:
35231         (Compute_Length): Move conversion to Unsigned to callers.
35232         (Get_Max_Size): Convert Len expression to Unsigned after calls to
35233         Compute_Length and Determine_Range.
35234         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
35235         Compute_Length and Determine_Range.
35236         Above changes fix problem with length computation for supernull arrays
35237         where Max (Len, 0) wasn't getting applied due to the Unsigned
35238         conversion used by Compute_Length.
35239
35240 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
35241
35242         * rtsfind.ads:
35243         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
35244          System.Secondary_Stack.
35245         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
35246          in HI-E mode.
35247         Remove unused entity RE_Exception_Data.
35248
35249         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
35250
35251         * rident.ads (No_Secondary_Stack): New restriction.
35252
35253 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
35254
35255         * gnat_rm.texi: Fix minor typos. Found while reading the section
35256         regarding "Bit_Order Clauses" that was sent to a customer.
35257         Very interesting documentation!
35258
35259 2001-12-17  Robert Dewar  <dewar@gnat.com>
35260
35261         * sem_case.adb (Choice_Image): Avoid creating improper character
35262         literal names by using the routine Set_Character_Literal_Name. This
35263         fixes bombs in certain error message cases.
35264
35265 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
35266
35267         * a-reatim.adb: Minor reformatting.
35268
35269 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35270
35271         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
35272         case where the formal is an extension of another formal in the current
35273         unit or in a parent generic unit.
35274
35275 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
35276
35277         * s-tposen.adb: Update comments.  Minor reformatting.
35278         Minor code clean up.
35279
35280         * s-tarest.adb: Update comments.  Minor code reorganization.
35281
35282 2001-12-17  Gary Dismukes  <dismukes@gnat.com>
35283
35284         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
35285         when Java_VM.
35286
35287 2001-12-17  Robert Dewa  <dewar@gnat.com>
35288
35289         * exp_attr.adb: Minor reformatting
35290
35291 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35292
35293         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
35294         derivations nested within a child unit: verify that the parent
35295         type is declared in an outer scope.
35296
35297 2001-12-17  Robert Dewar  <dewar@gnat.com>
35298
35299         * sem_ch12.adb: Minor reformatting
35300
35301 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35302
35303         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
35304         warning if current unit is a predefined one, from which bodies may
35305         have been deleted.
35306
35307 2001-12-17  Robert Dewar  <dewar@gnat.com>
35308
35309         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
35310         Fix header format. Add 2001 to copyright date.
35311
35312         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
35313         which caused CE during compilation if checks were enabled.
35314
35315 2001-12-17  Vincent Celier  <celier@gnat.com>
35316
35317         * make.adb:
35318         (Switches_Of): New function
35319         (Test_If_Relative_Path): New procedure
35320         (Add_Switches): Use new function Switches_Of
35321         (Collect_Arguments_And_Compile): Use new function Switches_Of.
35322         When using a project file, test if there are any relative
35323         search path. Fail if there are any.
35324         (Gnatmake): Only add switches for the primary directory when not using
35325         a project file. When using a project file, change directory to the
35326         object directory of the main project file. When using a project file,
35327         test if there are any relative search path. Fail if there are any.
35328         When using a project file, fail if specified executable is relative
35329         path with directory information, and prepend executable, if not
35330         specified as an absolute path, with the exec directory.  Make sure
35331         that only one -o switch is transmitted to the linker.
35332
35333         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
35334
35335         * prj-nmsc.adb:
35336         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
35337         when using a non standard naming scheme.
35338         (Check_Ada_Naming_Scheme): Make sure that error messages
35339         do not raise exceptions.
35340         (Is_Illegal_Append): Return True if there is no dot in the suffix.
35341         (Language_Independent_Check): Check the exec directory.
35342
35343         * prj.adb (Project_Empty): Add new component Exec_Directory
35344
35345         * prj.ads:
35346         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
35347         (Project_Data): Add component Exec_Directory
35348
35349         * snames.adb: Updated to match snames.ads revision 1.215
35350
35351         * snames.ads: Added Exec_Dir
35352
35353 2001-12-17  Robert Dewar  <dewar@gnat.com>
35354
35355         * make.adb: Minor reformatting
35356
35357         * prj-nmsc.adb: Minor reformatting
35358
35359         * snames.adb: Updated to match snames.ads
35360
35361         * snames.ads: Alphebetize entries for project file
35362
35363 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35364
35365         * trans.c (process_freeze_entity): Do nothing if the entity is a
35366         subprogram that was already elaborated.
35367
35368 2001-12-17  Richard Kenner  <kenner@gnat.com>
35369
35370         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
35371         and Esize if object is referenced via pointer.
35372
35373 2001-12-17  Ed Schonberg  <schonber@gnat.com>
35374
35375         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
35376         is discrete before analyzing choices.
35377
35378 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
35379
35380         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
35381         containing the name of the Ada Main Program. This string is mainly
35382         intended for the debugger.
35383         (Gen_Output_File_C): Do the equivalent change when generating a C file.
35384
35385 2001-12-17  Robert Dewar  <dewar@gnat.com>
35386
35387         * ali.adb: Set new Dummy_Entry field in dependency entry
35388
35389         * ali.ads: Add Dummy_Entry field to source dependency table
35390
35391         * bcheck.adb (Check_Consistency): Ignore dummy D lines
35392
35393         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
35394
35395         * lib-writ.ads: Document dummy D lines for missing files.
35396
35397         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
35398
35399 2001-12-17  Robert Dewar  <dewar@gnat.com>
35400
35401         * ali.adb: Type reference does not reset current file.
35402
35403         * ali.adb: Recognize and scan renaming reference
35404
35405         * ali.ads: Add spec for storing renaming references.
35406
35407         * lib-xref.ads: Add documentation for handling of renaming references
35408
35409         * lib-xref.adb: Implement output of renaming reference.
35410
35411         * checks.adb:
35412         (Determine_Range): Document local variables
35413         (Determine_Range): Make sure Hbound is initialized. It looks as though
35414          there could be a real problem here with an uninitialized reference
35415          to Hbound, but no actual example of failure has been found.
35416
35417 2001-12-17  Laurent Pautet  <pautet@gnat.com>
35418
35419         * g-socket.ads:
35420         Fix comment of Shutdown_Socket and Close_Socket. These functions
35421         should not fail silently because if they are called twice, this
35422         probably means that there is a race condition in the user program.
35423         Anyway, this behaviour is consistent with the rest of this unit.
35424         When an error occurs, an exception is raised with the error message
35425         as exception message.
35426
35427 2001-12-17  Robert Dewar  <dewar@gnat.com>
35428
35429         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
35430         that it happens before modification of Sloc values for -gnatD.
35431
35432         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
35433         so that it happens before modification of Sloc values for -gnatD.
35434
35435         * switch.adb: Minor reformatting
35436
35437 2001-12-15  Richard Henderson  <rth@redhat.com>
35438
35439         * sem_ch7.adb: Wrap comment.
35440
35441 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
35442
35443         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
35444         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
35445         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
35446         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
35447         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
35448         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
35449         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
35450         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
35451         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
35452         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
35453         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
35454         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
35455         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
35456         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
35457         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
35458         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
35459         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
35460         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
35461         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
35462         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
35463         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
35464         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
35465         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
35466         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
35467         spelling errors.
35468
35469 2001-12-14  Vincent Celier  <celier@gnat.com>
35470
35471         * osint.adb(Create_Debug_File): When an object file is specified,
35472         put the .dg file in the same directory as the object file.
35473
35474 2001-12-14  Robert Dewar  <dewar@gnat.com>
35475
35476         * osint.adb: Minor reformatting
35477
35478         * lib-xref.adb (Output_Instantiation): New procedure to generate
35479         instantiation references.
35480
35481         * lib-xref.ads: Add documentation of handling of generic references.
35482
35483         * ali.adb (Read_Instantiation_Ref): New procedure to read
35484         instantiation references
35485
35486         * ali.ads: Add spec for storing instantiation references
35487
35488         * bindusg.adb: Minor reformatting
35489
35490         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
35491
35492         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
35493
35494         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
35495
35496         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
35497
35498         * csets.ads:
35499         Fix header format
35500         Add 2001 to copyright date
35501         Add entry for Latin-5 (Cyrillic ISO-8859-5)
35502
35503 2001-12-14  Matt Gingell  <gingell@gnat.com>
35504
35505         * adaint.c: mktemp is a macro on Lynx and can not be used as an
35506         expression.
35507
35508 2001-12-14  Richard Kenner  <kenner@gnat.com>
35509
35510         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
35511         if operand is CONSTRUCTOR.
35512
35513 2001-12-14  Ed Schonberg  <schonber@gnat.com>
35514
35515         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
35516         before emiting check on right-hand side, so that exception information
35517         is correct.
35518
35519 2001-12-14  Richard Kenner  <kenner@gnat.com>
35520
35521         * utils.c (create_var_decl): Throw away initializing expression
35522         if just annotating types and non-constant.
35523
35524 2001-12-14  Vincent Celier  <celier@gnat.com>
35525
35526         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
35527         Default_Ada_...
35528
35529         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
35530         Remove functions.
35531         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
35532
35533         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
35534         Remove functions.
35535         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
35536
35537 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
35538
35539         * ChangeLog: Remove piece of diff output.
35540
35541 2001-12-14  Geert Bosch  <bosch@gnat.com>
35542
35543         * config-lang.in: Update copyright notice
35544
35545         * layout.adb: Remove commented out code.
35546
35547         * mdllfile.ads: Update copyright notice. Fix header format.
35548
35549         * sem_case.ads: Likewise.
35550
35551         * sem_ch3.adb: Minor reformatting.
35552
35553 2001-12-12  Geert Bosch  <bosch@gnat.com>
35554
35555         * freeze.ads: Update copyright date.
35556
35557         * g-comlin.ads: Minor reformatting.
35558
35559         * gnat-style.texi: Fix typo.
35560
35561 2001-12-12  Geert Bosch  <bosch@gnat.com>
35562
35563         *  einfo.h: Regenerate.
35564
35565 2001-12-12  Ed Schonberg  <schonber@gnat.com>
35566
35567         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
35568         on known node types, rather than untyped fields. Further cleanups.
35569
35570 2001-12-12  Robert Dewar  <dewar@gnat.com>
35571
35572         * sem_ch12.adb:
35573         (Save_Entity_Descendant): Minor comment update.
35574         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
35575          of an N_Attribute_Reference node. As per note below, this does not
35576         eliminate need for Associated_Node in attribute ref nodes.
35577         (Associated_Node): Documentation explicitly mentions attribute
35578         reference nodes, since this field is used in such nodes.
35579
35580         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
35581
35582 2001-12-12  Robert Dewar  <dewar@gnat.com>
35583
35584         * s-stalib.adb: Add more comments on with statements being needed
35585
35586         * par-ch12.adb: Minor reformatting
35587
35588         * prj-dect.ads: Fix copyright header
35589
35590         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
35591         inputs fit in 32 bits, but the result still overflows.
35592
35593         * s-fatgen.ads: Minor comment improvement
35594
35595 2001-12-12  Ed Schonberg  <schonber@gnat.com>
35596
35597         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
35598         formal derived type, look for an inherited component from the full
35599         view of the parent, if any.
35600
35601 2001-12-12  Robert Dewar  <dewar@gnat.com>
35602
35603         * checks.ads (Apply_Alignment_Check): New procedure.
35604
35605         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
35606         ensure that the alignment of objects with address clauses is
35607         appropriate, and raise PE if not.
35608
35609         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
35610         Exp_Pakd.Known_Aligned_Enough
35611
35612         * mdllfile.ads: Minor reformatting
35613
35614         * mlib-fil.ads: Minor reformatting
35615
35616 2001-12-12  Ed Schonberg  <schonber@gnat.com>
35617
35618         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
35619         fix to any component reference if enclosing record has non-standard
35620         representation.
35621
35622 2001-12-12  Vincent Celier  <celier@gnat.com>
35623
35624         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
35625         Iteration
35626
35627 2001-12-12  Ed Schonberg  <schonber@gnat.com>
35628
35629         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
35630         sem_attr.
35631
35632 2001-12-12  Robert Dewar  <dewar@gnat.com>
35633
35634         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
35635
35636 2001-12-12  Emmanuel Briot  <briot@gnat.com>
35637
35638         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
35639         and it adds dependencies to system.io.
35640
35641 2001-12-12  Pascal Obry  <obry@gnat.com>
35642
35643         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
35644         variable name.
35645
35646 2001-12-11  Ed Schonberg  <schonber@gnat.com>
35647
35648         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
35649         that is the parent of other generics, the instance body replaces the
35650         instance node.  Retrieve the instance of the spec, which is the one
35651         that is visible in clients and within the body.
35652
35653 2001-12-11  Vincent Celier  <celier@gnat.com>
35654
35655         * gnatmain.adb: Initial version.
35656
35657         * gnatmain.ads: Initial version.
35658
35659         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
35660
35661         * snames.adb: Updated to match snames.ads.
35662
35663         * snames.ads: Added Gnatstub.
35664
35665 2001-12-11  Vincent Celier  <celier@gnat.com>
35666
35667         * prj-attr.adb (Initialization_Data): Change name from
35668         Initialisation_Data.
35669
35670 2001-12-11  Emmanuel Briot  <briot@gnat.com>
35671
35672         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
35673         + and * applied to backslashed expressions like \r.
35674
35675 2001-12-11  Vasiliy Fofanov  <fofanov@gnat.com>
35676
35677         * g-os_lib.ads: String_List type added, Argument_List type is now
35678         subtype of String_List.
35679
35680 2001-12-11  Robert Dewar  <dewar@gnat.com>
35681
35682         * g-os_lib.ads: Change copyright to FSF
35683         Add comments for String_List type
35684
35685 2001-12-11  Vincent Celier  <celier@gnat.com>
35686
35687         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
35688         string to the buffer).
35689
35690 2001-12-11  Ed Schonberg  <schonber@gnat.com>
35691
35692         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
35693         sem_attr.
35694
35695         * sem_attr.adb: Simplify previous fix for Address.
35696         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
35697         to avoid anomalies where the bound of the type appears to raise
35698         constraint error.
35699
35700 2001-12-11  Robert Dewar  <dewar@gnat.com>
35701
35702         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
35703         handled.
35704
35705 2001-12-11  Ed Schonber   <schonber@gnat.com>
35706
35707         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
35708         renamed unit before checking for recursive instantiations.
35709
35710 2001-12-11  Emmanuel Briot  <briot@gnat.com>
35711
35712         * prj.ads: Add comments for some of the fields.
35713
35714 2001-12-11  Robert Dewar  <dewar@gnat.com>
35715
35716         * lib-xref.adb (Output_Refs): Don't output type references outside
35717         the main unit if they are not otherwise referenced.
35718
35719 2001-12-11  Ed Schonberg  <schonber@gnat.com>
35720
35721         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
35722         code and diagnose additional illegal uses
35723
35724         * sem_util.adb (Is_Object_Reference): An indexed component is an
35725         object only if the prefix is.
35726
35727 2001-12-11  Vincent Celier  <celier@gnat.com>
35728
35729         * g-diopit.adb: Initial version.
35730
35731         * g-diopit.ads: Initial version.
35732
35733         * g-dirope.adb:
35734         (Expand_Path): Avoid use of Unbounded_String
35735         (Find, Wildcard_Iterator): Moved to child package Iteration
35736
35737         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
35738
35739 2001-12-11  Robert Dewar  <dewar@gnat.com>
35740
35741         * sem_attr.adb: Minor reformatting
35742
35743 2001-12-11  Ed Schonberg  <schonber@gnat.com>
35744
35745         * sem_ch3.adb: Clarify some ???.
35746
35747 2001-12-11  Robert Dewar  <dewar@gnat.com>
35748
35749         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
35750         Exp_Pakd.Known_Aligned_Enough
35751
35752         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
35753         version is moved to Exp_Ch13.
35754
35755 2001-12-11  Robert Dewar  <dewar@gnat.com>
35756
35757         * einfo.ads: Minor reformatting
35758
35759         * exp_ch5.adb: Add comment for previous.change
35760
35761         * ali.adb: New interface for extended typeref stuff.
35762
35763         * ali.ads: New interface for typeref stuff.
35764
35765         * checks.adb (Apply_Alignment_Check): New procedure.
35766
35767         * debug.adb: Add -gnatdM for modified ALI output
35768
35769         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
35770
35771         * lib-xref.adb: Extend generation of <..> notation to cover
35772         subtype/object types. Note that this is a complete rewrite,
35773         getting rid of the very nasty quadratic algorithm previously
35774         used for derived type output.
35775
35776         * lib-xref.ads: Extend description of <..> notation to cover
35777         subtype/object types. Uses {..} for these other cases.
35778         Also use (..) for pointer types.
35779
35780         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
35781
35782         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
35783         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
35784
35785 2001-12-11  Vincent Celier  <celier@gnat.com>
35786
35787         * gnatcmd.adb:
35788         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
35789         Changed /BIND_ONLY to /ACTIONS=BIND
35790         Changed /LINK_ONLY to /ACTIONS=LINK
35791
35792 2001-12-11  Ed Schonberg  <schonber@gnat.com>
35793
35794         * sem_ch8.adb (Find_Selected_Component): improved search for a
35795         candidate package in case of error.
35796
35797         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
35798         chain back on scope stack before reinstalling use clauses.
35799
35800         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
35801         is enabled, do not kill the code for the condition, to preserve
35802         warning.
35803
35804 2001-12-11  Robert Dewar  <dewar@gnat.com>
35805
35806         * checks.adb (Insert_Valid_Check): Apply validity check to expression
35807         of conversion, not to result of conversion.
35808
35809 2001-12-11  Ed Schonberg  <schonber@gnat.com>
35810
35811         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
35812         before freezing parent. If the declarations are mutually recursive,
35813         an access to the current record type may be frozen before the
35814         derivation is complete.
35815
35816 2001-12-05  Vincent Celier  <celier@gnat.com>
35817
35818         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
35819         -c /COMPILE_ONLY, -l /LINK_ONLY
35820
35821         * opt.ads:
35822         (Bind_Only): New Flag
35823         (Link_Only): New flag
35824
35825         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
35826         and -l (Link_Only)
35827
35828         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
35829
35830         * make.adb:
35831         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
35832         (Gnatmake): Set the step flags. Only perform a step if the
35833         corresponding step flag is True.
35834         (Scan_Make_Arg): Reset the bind and link step flags when -u
35835         or -gnatc has been specified.
35836
35837 2001-12-05  Ed Schonberg  <schonber@gnat.com>
35838
35839         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
35840         get bounds from right operand.
35841
35842         * sem_eval.adb: Minor reformatting
35843
35844         * exp_util.adb (Make_Literal_Range): use bound of literal rather
35845         than Index'First, its lower bound may be different from 1.
35846
35847         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
35848         and C48009J
35849
35850 2001-12-05  Vincent Celier  <celier@gnat.com>
35851
35852         * prj-nmsc.adb Minor reformatting
35853
35854         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
35855         set and libraries are not supported.
35856
35857 2001-12-05  Ed Schonberg  <schonber@gnat.com>
35858
35859         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
35860         private view explicitly, so the back-end can treat as a global
35861         when appropriate.
35862
35863 2001-12-05  Ed Schonberg  <schonber@gnat.com>
35864
35865         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
35866          unit, always replace instance node with new body, for ASIS use.
35867
35868 2001-12-05  Vincent Celier  <celier@gnat.com>
35869
35870         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
35871         libraries are not supported and both attributes Library_Name and
35872         Library_Dir are specified.
35873
35874         * prj-proc.adb (Expression): Set location of Result to location of
35875         first term.
35876
35877         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
35878         (prj-nmsc is now importing MLib.Tgt)
35879
35880         * prj-proc.adb: Put the change indicated above that was forgotten.
35881
35882 2001-12-05  Robert Dewar  <dewar@gnat.com>
35883
35884         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
35885
35886 2001-12-05  Ed Schonberg  <schonber@gnat.com>
35887
35888         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
35889         constraint, introduce explicit subtype declaration and derive from it.
35890
35891         * sem_ch3.adb: Minor reformatting
35892
35893 2001-12-05  Robert Dewar  <dewar@gnat.com>
35894
35895         * checks.adb (Determine_Range): Increase cache size for checks.
35896         Minor reformatting
35897
35898         * exp_ch6.adb: Minor reformatting
35899         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
35900         a parameter whose root type is System.Address, since treating such
35901         subprograms as pure in the code generator is almost surely a mistake
35902         that will lead to unexpected results.
35903
35904         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
35905         change handling of conversions.
35906
35907         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
35908
35909 2001-12-05  Ed Schonberg  <schonber@gnat.com>
35910
35911         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
35912         aggregate with static wrong size, attach generated Raise node to
35913         declaration.
35914
35915 2001-12-05  Robert Dewar  <dewar@gnat.com>
35916
35917         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
35918         Fixes compilation abandoned bomb in B24009B.
35919
35920 2001-12-05  Ed Schonberg  <schonber@gnat.com>
35921
35922         * sem_ch12.adb:
35923         Document use of Associated_Node on Selected_Components.
35924         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
35925         to clarify use of untyped descendant fields.
35926
35927 2001-12-05  Robert Dewar  <dewar@gnat.com>
35928
35929         * prj-dect.ads: Add ??? comment
35930         Add 2001 to copyright notice (was not done in after all)
35931
35932         * prj-part.adb: Minor reformatting. Reword one awkward error message.
35933
35934         * prj.ads: Minor reformatting throughout, and add some ??? comments
35935
35936         * snames.ads: Minor reformatting
35937
35938 2001-12-05  Geert Bosch  <bosch@gnat.com>
35939
35940         * snames.adb: Autoupdate
35941
35942 2001-12-05  Vincent Celier  <celier@gnat.com>
35943
35944         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
35945
35946         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
35947
35948         * prj-env.adb: Minor comment changes (modifying -> extends).
35949
35950         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
35951
35952         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
35953         Tok_Extends.
35954
35955         * prj.adb (Initialize): Change Modifying to Extends.
35956
35957         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
35958
35959         * prj.ads: Minor comment change (Modifying -> extending).
35960
35961         * snames.ads: Change modifying to extends.
35962
35963 2001-12-05  Robert Dewar  <dewar@gnat.com>
35964
35965         * sem_warn.adb: Remove stuff for conditionals, we are not going to
35966         do this after all.
35967
35968         * sem_warn.ads: Remove stuff for conditionals, we are not going to
35969         do this after all.  Add 2001 to copyright notice
35970
35971 2001-12-04  Geert Bosch  <bosch@gnat.com>
35972
35973         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
35974
35975 2001-12-04  Robert Dewar  <dewar@gnat.com>
35976
35977         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
35978         location if we already have errors. Stops some cases of cascaded
35979         errors.
35980
35981         * errout.adb: Improve comment.
35982
35983 2001-12-04  Robert Dewar  <dewar@gnat.com>
35984
35985         * sem_ch12.adb:
35986         (Analyze_Formal_Type_Definition): Defend against Error.
35987         (Analyze_Formal_Subprogram): Defend against Error.
35988
35989         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
35990         remove following semicolon if present. Removes cascaded error.
35991
35992 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
35993
35994         * bindgen.adb:
35995         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
35996          exceptions equals 0.
35997         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
35998         Fixes PIWG E tests (which have to be run with -gnatL).
35999
36000 2001-12-04  Robert Dewar  <dewar@gnat.com>
36001
36002         * einfo.ads: Minor reformatting
36003
36004 2001-12-04  Ed Schonberg  <schonber@gnat.com>
36005
36006         * einfo.ads: Block_Node points to the identifier of the block, not to
36007         the block node itself, to preserve the link when the block is
36008         rewritten, e.g. within an if-statement with a static condition.
36009
36010         * inline.adb (Cleanup_Scopes): recover block statement from block
36011         entity using new meaning of Block_Node.
36012
36013         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
36014         identifier of block node, rather than to node itself.
36015
36016 2001-12-04  Gary Dismukes  <dismukes@gnat.com>
36017
36018         * layout.adb:
36019         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
36020         (Discrimify): Go back to setting the Etypes of the selected component
36021         because the Vname component does not exist at this point and will
36022         fail name resolution. Also set Analyzed.
36023         Remove with and use of Sem_Res.
36024
36025 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
36026
36027         * Makefile.in: (HIE_SOURCES): add s-fat*.
36028
36029 2001-12-04  Robert Dewar  <dewar@gnat.com>
36030
36031         * sem_attr.adb:
36032         (Compile_Time_Known_Attribute): New procedure.
36033         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
36034          proper range check.
36035
36036 2001-12-04  Ed Schonberg  <schonber@gnat.com>
36037
36038         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
36039         processing discriminants to diagnose illegal default values.
36040
36041 2001-12-04  Ed Schonberg  <schonber@gnat.com>
36042
36043         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
36044         access discriminant within a type extension that constrains its
36045         parent discriminants.
36046
36047 2001-12-04  Ed Schonberg  <schonber@gnat.com>
36048
36049         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
36050         is malformed, use instance of Any_Id to allow analysis to proceed.
36051
36052         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
36053         type definition is illegal.
36054         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
36055         misplaced.
36056
36057 2001-12-04  Ed Schonberg  <schonber@gnat.com>
36058
36059         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
36060         constants.
36061
36062 2001-12-04  Robert Dewar  <dewar@gnat.com>
36063
36064         * errout.adb: Minor reformatting
36065
36066 2001-12-04  Robert Dewar  <dewar@gnat.com>
36067
36068         * exp_util.adb: Minor reformatting from last change
36069
36070         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
36071         which is a rewriting of an expression, traverse the original
36072         expression to remove warnings that may have been posted on it.
36073
36074 2001-12-04  Ed Schonberg  <schonber@gnat.com>
36075
36076         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
36077         record that has other packed components.
36078
36079 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
36080
36081         * adaint.c: Minor cleanups.
36082
36083 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
36084
36085         * adaint.c: Do not use utime.h on vxworks.
36086
36087 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
36088
36089         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
36090         more confusion than it solves.
36091
36092 2001-12-04  Geert bosch  <bosch@gnat.com>
36093
36094         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
36095
36096 2001-12-04  Geert Bosch  <bosch@gnat.com>
36097
36098         * Makefile.in (update-sources): New target.
36099         For use by gcc_release script.
36100
36101 2001-12-04  Ed Schonberg  <schonber@gnat.com>
36102
36103         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
36104         a configuration pragma, it is now legal wherever a pragma can appear.
36105
36106 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
36107
36108         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
36109         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
36110         is now @CROSS@ -DIN_GCC; update comment.
36111
36112 2001-12-04  Robert Dewar  <dewar@gnat.com>
36113
36114         * einfo.adb (Has_Pragma_Pure_Function): New flag.
36115         Fix problem that stopped ceinfo from working
36116
36117         * einfo.ads (Has_Pragma_Pure_Function): New flag.
36118
36119         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
36120
36121 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
36122
36123         * gnatchop.adb:
36124         (File_Time_Stamp): New procedure.
36125         (Preserve_Mode): New boolean.
36126         (Write_Unit): Pass time stamp.
36127         Implement -p switch (preserve time stamps).
36128
36129         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
36130
36131         * gnatchop.adb: Do usage info for -p switch
36132
36133         * adaint.h (__gnat_set_file_time_name): New function
36134
36135         * adaint.c (__gnat_set_file_time_name): Implement
36136
36137         * adaint.h: Fix typo
36138
36139 2001-12-03  Robert Dewar  <dewar@gnat.com>
36140
36141         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
36142         have Associated_Node.
36143
36144 2001-12-03  Robert Dewar  <dewar@gnat.com>
36145
36146         * prj-proc.adb: Minor reformatting
36147
36148         * make.adb: Minor reformatting
36149
36150 2001-12-03  Geert Bosch  <bosch@gnat.com>
36151
36152         * make.adb: Minor reformatting.
36153
36154 2001-12-03 Robert Dewar  <dewar@gnat.com>
36155
36156         * sem_ch12.adb: Minor reformatting
36157
36158 2001-12-03  Ed Schonberg  <schonber@gnat.com>
36159
36160         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
36161         push Standard on the stack before analyzing the instance body,
36162         in order to have a clean visibility environment.
36163
36164         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
36165
36166 2001-12-03  Ed Schonberg  <schonber@gnat.com>
36167
36168         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
36169         instantiation of a body that contains an inlined body.
36170
36171 2001-12-03  Ed Schonberg  <schonber@gnat.com>
36172
36173         * sem_ch12.adb:
36174         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
36175         to prevent freezing within formal packages.
36176         (Freeze_Subprogram_Body): If body comes from another instance that
36177         appeared before its own body, place freeze node at end of current
36178         declarative part, to prevent a back-end crash.
36179         (Inline_Instance_Body): Handle properly a package instance within
36180         a subprogram instance that is a child unit.
36181
36182 2001-12-01  Graham Stott  <grahams@redhat.com>
36183
36184         * Makefile.in (misc.o): Add missing $(srcdir) prefix
36185         and add optabs.h dependency.
36186
36187         * misc.c: Include optabs.h
36188         (gnat_tree_code_type): Make static and const.
36189         (gnat_tree_code_length): Likewise.
36190         (gnat_tree_code_name): Likewise.
36191         (update_setjmp_buf): Obtain operands mode from insn_data.
36192
36193 2001-11-29  Richard Henderson  <rth@redhat.com>
36194
36195         * init.c: Remove obsolete dwarf2 frame.h section.
36196
36197 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
36198
36199         * Make-lang.in (ada.generated-manpages): New dummy target.
36200
36201 2001-11-29  Ed Schonberg  <schonber@gnat.com>
36202
36203         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
36204         into Command, an array conversion is illegal here. Uncovered by
36205         ACATS B460005.
36206
36207 2001-11-28  Geert Bosch  <bosch@gnat.com>
36208
36209         * init.c: Minor whitespace changes.
36210
36211 2001-11-28  Doug Rupp  <rupp@gnat.com>
36212
36213         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
36214         signal stack.
36215
36216 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
36217
36218         * misc.c (gnat_expand_constant): Move declaration above
36219         definition of lang_hooks.
36220         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
36221         (gnat_init): lang_expand_constant no longer exists.
36222
36223         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
36224         always have vprintf.
36225         (gnat_init): Always call set_internal_error_function.
36226
36227 2001-11-27  Andreas Jaeger  <aj@suse.de>
36228
36229         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
36230
36231 2001-11-27  Laurent Guerby  <guerby@acm.org>
36232
36233         * Makefile.in: Regenerate Ada dependencies.
36234
36235 2001-11-26  Richard Henderson  <rth@redhat.com>
36236
36237         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
36238         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
36239         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
36240
36241 2001-11-25  Laurent Guerby  <guerby@acm.org>
36242
36243         * sysdep.c (rts_get_*): Fix style.
36244
36245 2001-11-19  Laurent Guerby  <guerby@acm.org>
36246
36247         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
36248         since it is of no apparent use and cause warnings.
36249
36250 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
36251
36252         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
36253         static too.
36254         (gnat_init): Don't return NULL.
36255         (finish_parse): Remove.
36256
36257 2001-11-17  Laurent Guerby  <guerby@acm.org>
36258
36259         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
36260         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
36261         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
36262         * lang-spec.h: Add missing struct field to silence warnings.
36263         * sysdep.c (rts_get_*): Provide K&R prototype.
36264         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
36265         * traceback.c (Unlock_Task, Lock_Task): Likewise.
36266         * tracebak.c (__gnat_backtrace): Remove unused variable.
36267         * utils.c (end_subprog_body): Move to K&R style.
36268
36269 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36270
36271         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
36272
36273 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
36274
36275         * misc.c (gnat_init): Change prototype.  Include the
36276         functionality of the old init_parse and init_decl_processing.
36277         (gnat_init_decl_processing): New prototype.
36278         (init_parse): Remove.
36279         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
36280
36281 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
36282
36283         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
36284         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
36285         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
36286         set_yydebug): Remove.
36287
36288 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
36289
36290         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
36291         (struct lang_hooks): Constify.
36292         (language_string, lang_identify): Remove.
36293         * utils.c (init_decl_processing): Update.
36294
36295 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
36296
36297         * misc.c: Include langhooks-def.h.
36298         * Makefile.in: Update.
36299
36300 2001-10-30  Robert Dewar  <dewar@gnat.com>
36301
36302         * style.adb:
36303         (Check_Identifier): Rewrite circuit to be compatible with use of letters
36304         in the upper half of ASCII.
36305         (Check_Identifier): Minor reformatting
36306
36307 2001-10-30  Geert Bosch  <bosch@gnat.com>
36308
36309         * (Associated_Node, Set_Associated_Node): Do not check for
36310         Freeze_Entity.
36311
36312 2001-10-30  Robert Dewar  <dewar@gnat.com>
36313
36314         * a-reatim.ads: Minor reformatting
36315
36316 2001-10-30  Robert Dewar  <dewar@gnat.com>
36317
36318         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
36319         undocumented declarations.
36320
36321 2001-10-30  Pascal Obry  <obry@gnat.com>
36322
36323         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
36324         to the binder and linker.
36325         Minor style fix.
36326
36327         * mdll.ads: Fix layout.  Update copyright notice.
36328
36329         * mdll.adb: Fix layout.  Update copyright notice.
36330
36331 2001-10-30  Robert Dewar  <dewar@gnat.com>
36332
36333         * usage.adb: Minor fix to output for -gnaty.
36334
36335 2001-10-30  Ed Schonberg  <schonber@gnat.com>
36336
36337         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
36338         to accommodate all its possible values.
36339
36340         * a-reatim.adb (Split): Special-case handling of Time_Span_First
36341         and of small absolute values of T.
36342
36343 2001-10-30  Richard Kenner  <kenner@gnat.com>
36344
36345         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
36346         set_mem_attributes since not needed and wrong if RESULT if a REG;
36347         fixes ACATS failures.
36348
36349 2001-10-30  Geert Bosch  <bosch@gnat.com>
36350
36351         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
36352         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
36353
36354 2001-10-30  Robert Dewar  <dewar@gnat.com>
36355
36356         * bindusg.adb: Undocument -f switch.
36357
36358         * gnatcmd.adb: Remove /FULL_ELABORATION.
36359
36360         * opt.ads (Force_RM_Elaboration_Order): Document that this is
36361         obsolescent.
36362
36363         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
36364
36365         * gnatbind.adb: Minor update of warning msg.
36366
36367 2001-10-30  Vincent Celier  <celier@gnat.com>
36368
36369         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
36370         for project file switches (-P (/PROJECT_FILE=),
36371          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
36372         or MEDIUM or HIGH)
36373
36374 2001-10-30  Geert Bosch  <bosch@gnat.com>
36375
36376         * decl.c: Minor whitespace fixes.
36377
36378 2001-10-30  Richard Kenner  <kenner@gnat.com>
36379
36380         * utils2.c (build_allocator): Test for SIZE overflow in array case too
36381
36382 2001-10-30  Geert Bosch  <bosch@gnat.com>
36383
36384         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
36385         Found due to GCC 3.0 warning of using uninitialized value.
36386
36387         * layout.adb:
36388         (Get_Max_Size): Use variant record for tracking value/expression.
36389          Makes logic clearer and prevents warnings for uninitialized variables.
36390         (Layout_Array_Type): Use variant record for tracking value/expression.
36391          Makes logic clearer and prevents warnings for uninitialized variables.
36392
36393 2001-10-30  Robert Dewar  <dewar@gnat.com>
36394
36395         * lib.adb: Minor reformatting
36396
36397         * s-taprop.ads: Minor reformatting
36398
36399 2001-10-29  Laurent Guerby  <guerby@acm.org>
36400
36401         * init.c:
36402         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
36403         const.
36404         (_gnat_error_handler): Make MSG const.
36405
36406 2001-10-29  Richard Kenner  <kenner@gnat.com>
36407
36408         * sysdep.c: Fix localtime_r problem on LynxOS.
36409         Also remove #elif to avoid warnings.
36410
36411         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
36412         used by this.
36413
36414         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
36415
36416 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
36417
36418         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
36419         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
36420         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
36421         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
36422         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
36423         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
36424         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
36425         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
36426         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
36427         types.ads, urealp.adb: Fix spelling errors.
36428
36429 2001-10-27  Laurent Guerby  <guerby@acm.org>
36430
36431         * trans.c (gigi): Fix non determinism leading to bootstrap
36432         comparison failures for debugging information.
36433
36434 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
36435
36436         * gnat_rm.texi: Use @./@: where appropriate.
36437
36438 2001-10-26  Robert Dewar  <dewar@gnat.com>
36439
36440         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
36441
36442 2001-10-26  Richard Kenner  <kenner@gnat.com>
36443
36444         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
36445
36446 2001-10-26  Richard Kenner  <kenner@gnat.com>
36447
36448         * decl.c (validate_size): Modify message for bad size to avoid
36449         implication that compiler is modifying the size.
36450
36451 2001-10-26  Robert Dewar  <dewar@gnat.com>
36452
36453         * prj-util.adb: Minor reformatting. Fix bad header format.
36454
36455 2001-10-26  Robert Dewar  <dewar@gnat.com>
36456
36457         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
36458
36459         * sinfo.ads: Clarify use of Associated_Node (documentation only).
36460
36461         * sem_ch12.adb: Change Node4 to Associated_Node. Change
36462         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
36463         much more narrowly in places where needed. These are cleanups.
36464
36465 2001-10-26  Joel Brobecker  <brobecke@gnat.com>
36466
36467         * 5zosinte.ads (null_pthread): new constant.
36468
36469         * 5ztaprop.adb:
36470         (Initialize_TCB): Initialize thread ID to null, to be able to verify
36471          later that this field has been set.
36472         (Finalize_TCB): ditto.
36473         (Suspend_Task): Verify that the thread ID is not null before using it.
36474         (Resume_Task): ditto.
36475
36476         * s-tasdeb.adb:
36477         (Resume_All_Tasks): Lock the tasks list before using it.
36478         (Suspend_All_Tasks): ditto.
36479
36480 2001-10-26  Richard Kenner  <kenner@gnat.com>
36481
36482         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
36483         Make constant variant of designated type for Is_Access_Constant.
36484         Call update_pointer_to with main variant.
36485
36486         * trans.c (process_freeze_entity, process_type):
36487         Call update_pointer_to on main variant.
36488
36489         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
36490         If main variant, update all other variants.
36491
36492         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
36493         TREE_STATIC.
36494
36495 2001-10-26  Robert Dewar  <dewar@gnat.com>
36496
36497         * prj-util.adb: Minor reformatting
36498
36499 2001-10-26  Robert Dewar  <dewar@gnat.com>
36500
36501         * prj-util.adb: Minor reformatting
36502
36503 2001-10-26  Robert Dewar  <dewar@gnat.com>
36504
36505         * prj-attr.adb: Minor reformatting throughout
36506
36507 2001-10-26  Robert Dewar  <dewar@gnat.com>
36508
36509         * prj-attr.ads: Minor reformatting
36510         Add ??? comment (this whole spec has almost no comments)
36511
36512 2001-10-26  Vincent Celier  <celier@gnat.com>
36513
36514         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
36515         ("//") that precede the drive letter on Interix.
36516
36517 2001-10-26  Geert Bosch  <bosch@gnat.com>
36518
36519         * gnat_rm.texi: Add GNAT Reference Manual.
36520
36521 2001-10-25  Robert Dewar  <dewar@gnat.com>
36522
36523         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
36524         is Error. Similar change for other renaming cases.
36525
36526 2001-10-25  Robert Dewar  <dewar@gnat.com>
36527
36528         * s-atacco.ads: Add pragma Inline_Always for functions.
36529         Fix header format. Add copyright 2001
36530
36531 2001-10-25  Ed Schonberg  <schonber@gnat.com>
36532
36533         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
36534         return Error rather than Empty so that analysis can proceed.
36535
36536 2001-10-25  Ed Schonberg  <schonber@gnat.com>
36537
36538         * sem_util.adb (Enter_Name): better handling of cascaded error
36539         messages when a unit appears in its own context.
36540
36541 2001-10-25  Ed Schonberg  <schonber@gnat.com>
36542
36543         * sem_util.adb (Defining_Entity): in case of error, attach created
36544         entity to specification, so that semantic analysis can proceed.
36545
36546 2001-10-25  Robert Dewar  <dewar@gnat.com>
36547
36548         * sem_util.adb
36549         (Defining_Entity): Deal with Error.
36550         (Process_End_Label): Deal with bad end label for.
36551
36552 2001-10-25  Ed Schonberg  <schonber@gnat.com>
36553
36554         * sem_elab.adb (Check_A_Call): refine message when call is in an
36555         instance but callee is not declared in the generic unit.
36556
36557 2001-10-25  Ed Schonberg  <schonber@gnat.com>
36558
36559         * sem_elab.adb (Check_A_Call): check for renaming before finding the
36560         enclosing unit, which may already be different from the calling unit.
36561
36562 2001-10-25  Geert Bosch  <bosch@gnat.com>
36563
36564         * 4gintnam.ads: fix header format.
36565
36566 2001-10-25  Ed Schonberg  <schonber@gnat.com>
36567
36568         * sem_res.adb (Resolve_Call): if the call is actually an indexing
36569         operation on the result of a parameterless call, perform elaboration
36570         check after the node has been properly rewritten.
36571
36572         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
36573         inlined within the generic tree, the defining identifier is not a
36574         compilation_unit.
36575
36576 2001-10-25  Ed Schonberg  <schonber@gnat.com>
36577
36578         * sem_res.adb (Resolve): special-case resolution of Null in an
36579          instance or an inlined body to avoid view conflicts.
36580
36581         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
36582          compatibility by retrieving the access type of the generic copy.
36583
36584 2001-10-25  Robert Dewar  <dewar@gnat.com>
36585
36586         * sem_ch3.adb:
36587         (Analyze_Number_Declaration): Handle error expression.
36588         (Signed_Integer_Type_Declaration): Handle error bound.
36589         (Analyze_Subtype_Indication): Handle error range.
36590
36591         * sem_util.adb (Get_Index_Bounds): Check for Error.
36592
36593 2001-10-25  Robert Dewar  <dewar@gnat.com>
36594
36595         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
36596         in no run time mode.
36597
36598 2001-10-25  Pascal Obry  <obry@gnat.com>
36599
36600         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
36601         mode case for ALLOC case.
36602
36603         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
36604         all platforms. Improvement of last change.
36605
36606 2001-10-25  Robert Dewar  <dewar@gnat.com>
36607
36608         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
36609
36610 2001-10-25  Geert Bosch  <bosch@gnat.com>
36611
36612         * osint.adb (Is_Relative): Remove duplicate.
36613
36614 2001-10-25  Pascal Obry  <obry@gnat.com>
36615
36616         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
36617         pathnames in UNIX and DOS style with drive letter.
36618         (Is_Relative): new routine.
36619
36620         * osint.adb: Minor reformatting
36621
36622         * osint.adb (Is_Relative): implementation using
36623         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
36624
36625 2001-10-25  Pascal Obry  <obry@gnat.com>
36626
36627         * g-dirope.adb (Basename): correctly compute offset between the
36628         original Path and the translated one.
36629
36630         * g-dirope.adb: (Base_Name): add some comments.
36631
36632 2001-10-25  Robert Dewar  <dewar@gnat.com>
36633
36634         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
36635         in HIE mode, avoids compilation abandoned message
36636
36637         * exp_imgv.adb: Correct typo in previous change
36638
36639         * exp_imgv.adb: Correct typo in previous change (not my day!)
36640
36641 2001-10-25  Robert Dewar  <dewar@gnat.com>
36642
36643         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
36644
36645 2001-10-25  Pascal Obry  <obry@gnat.com>
36646
36647         * g-awk.ads: Move all pragma inlines next to the routine
36648          declarations. This is more uniform with other GNAT spec.
36649
36650 2001-10-22  Geert Bosch  <bosch@gnat.com>
36651
36652         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
36653
36654 2001-10-19  Geert Bosch  <bosch@gnat.com>
36655
36656         * Makefile.in (tools, gnattools): Remove gnatmem.
36657
36658 2001-10-17  Richard Henderson  <rth@redhat.com>
36659
36660         * Makefile.in (misc.o): Depend on langhooks.h.
36661         * misc.c: Include it.
36662         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
36663         (LANG_HOOKS_DECODE_OPTION): New.
36664         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
36665
36666 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
36667
36668         * trans.c (tree_transform): Adjust to recent change in
36669         expand_asm_operands to implement named asm operands.
36670
36671 2001-10-11  Ed Schonberg  <schonber@gnat.com>
36672
36673         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
36674         renaming of discriminant for mutable record type.
36675
36676 2001-10-11  Robert Dewar  <dewar@gnat.com>
36677
36678         * validsw.adb: Properly save -gnatVn status.
36679
36680 2001-10-11  Robert Dewar  <dewar@gnat.com>
36681
36682         * usage.adb: Add lines for V switch.
36683
36684         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
36685         (/VALIDITY_CHECKING).
36686
36687 2001-10-11  Ed Schonberg  <schonber@gnat.com>
36688
36689         * sem_type.adb (Add_One_Interp): an operator for a type declared in
36690         an extension of System is known to be visible.
36691
36692 2001-10-11  Ed Schonberg  <schonber@gnat.com>
36693
36694         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
36695         properly. Fixes regression on ACATS C34005G.
36696
36697 2001-10-11  Robert Dewar  <dewar@gnat.com>
36698
36699         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
36700         loop in generic instance, since this is likely not very useful.
36701
36702 2001-10-11  Robert Dewar  <dewar@gnat.com>
36703
36704         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
36705         the error message for high integrity mode.
36706
36707         * rtsfind.adb (RTE): Give message if we try to find an entity that
36708         is not available in high integrity mode.
36709
36710         * rtsfind.ads:
36711         (OK_To_Use_In_HIE_Mode): New array.
36712         (RTE): May return Empty in high integrity mode.
36713
36714         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
36715         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
36716
36717         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
36718         unit if not inlined always and in no runtime mode. Fixes problem
36719         caused by new Rtsfind changes.
36720
36721         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
36722         body is deleted.
36723
36724         * rtsfind.adb (RTE): Make sure we do not try to load unit after
36725         giving message for entity not available in high integrity mode.
36726
36727 2001-10-11  Pascal Obry  <obry@gnat.com>
36728
36729         * impunit.adb: Add GNAT.CRC32.
36730
36731 2001-10-11  Ed Schonberg  <schonber@gnat.com>
36732
36733         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
36734         properly the case where one universal operand in a non-static
36735         exponentiation of a real literal.
36736
36737 2001-10-11  Ed Schonberg  <schonber@gnat.com>
36738
36739         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
36740         clause, return the gobal finalization list, for lack of anthing else.
36741
36742 2001-10-11  Ed Schonberg  <schonber@gnat.com>
36743
36744         * exp_ch7.adb (Make_Transient_Block): if statement is within
36745         exception handler, always use new transient scope to place Clean
36746         procedure.
36747
36748 2001-10-11  Pascal Obry  <obry@gnat.com>
36749
36750         * Makefile.in:
36751         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
36752         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
36753         (GNATLS_RTL_OBJS): add g-crc32.o
36754         (GNATMAKE_RTL_OBJS): add g-crc32.o
36755
36756         * ali-util.adb:
36757         (CRC_Match): new function.
36758         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
36759         instead of the previous simple checksum algorithm.
36760         (Time_Stamp_Mismatch): use CRC_Match for comparison.
36761         (Set_Source_Table): idem.
36762
36763         * ali-util.ads:
36764         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
36765         instead of simple checksum.
36766         (CRC_Match): new function.
36767         (CRC_Error): new constant.
36768
36769         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
36770         a CRC now and not a simple checksum. A CRC uses lower-case hex
36771         letters, fixes ambiguity in parsing.
36772
36773         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
36774         is what this variable will store.
36775
36776         * bcheck.adb: Change reference to chechsum in comments by CRC.
36777         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
36778         rename All_Checksum_Match to All_CRC_Match. Change due to API
36779         renaming since now GNAT does not use a simple checksum but a
36780         CRC using GNAT.CRC32.
36781
36782         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
36783         now and not anymore a simple checksum.
36784
36785         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
36786         places.
36787
36788         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
36789
36790         * scans.adb:
36791         (Restore_Scan_State): rename Checksum to CRC.
36792         (Save_Scan_State): idem.
36793
36794         * scans.ads:
36795         With GNAT.CRC32.
36796         (Checksum): rename to CRC.
36797         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
36798
36799         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
36800         GNAT.CRC32).  Update copyright notice.
36801
36802         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
36803         GNAT.CRC32).  Update copyright notice.
36804
36805         * scn.adb:
36806         (Accumulate_Checksum): removed.
36807         (Update): new procedure. Add a wide-character into the CRC.
36808
36809         * sinput-l.adb:
36810         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
36811         (Load_File): fix initialization of S (change Source_Checksum to
36812         Source_CRC)
36813
36814         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
36815         Source_CRC in S initialization.
36816
36817         * sinput.adb (Source_Checksum): renamed to Source_CRC.
36818
36819         * sinput.ads (Source_Checksum): renamed to Source_CRC.
36820         Update comments for the CRC.
36821
36822         * types.adb (Hex): Use lowercase for the letter part.
36823
36824         * types.ads (Get_Hex_String): Returns the hexadecimal representation
36825         for a word. This is currently used only for CRC. In previous version,
36826         the checksum was using a representation with all letter being
36827         upper-case. With the new implementation (using CRC) we do not remove
36828         the 32th bit of the CRC, so we can have an upper-case starting letter
36829         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
36830         It is ambigous since the CRC was optional and could be followed by
36831         options like EB, EE. So now this routines uses lower-case letter for
36832         the hexadecimal representation. Strange enough only lower case letters
36833         where checked in Scan_ALI (even if this was not a possible case).
36834
36835         * gnatvsn.ads (Library_Version): changed to 3.15a.
36836
36837         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
36838         for the compiler.
36839
36840         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
36841         for the compiler.
36842
36843         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
36844         Add 2001 to copyright notice
36845         (Accumulate_Checksum): Modify to use System.CRC32.
36846
36847         * ali-util.ads: Redo changes of previous revision to continue to use
36848         the word Checksum. Add 2001 to copyright notice.
36849
36850         * ali.adb: Undo some of previous changes, not needed.
36851         Keep the change for lower case letters in the checksum.
36852
36853         * ali.ads: Undo previous change not needed.
36854
36855         * bcheck.adb: Undo most of previous change, not needed.
36856         But do use Checksums_Match for checksum comparison.
36857
36858         * gnatls.adb: Undo most of previous change, not needed.
36859         But do use Checksums_Match for comparing checksums.
36860
36861         * lib-load.adb: Undo previous change, not needed.
36862
36863         * lib-writ.adb: Undo previous change, not needed.
36864
36865         * lib-writ.ads: Document that checksums use lower case,
36866         not upper case letters.
36867
36868         * scans.adb: Undo previous change, not needed
36869
36870         * scans.ads: Undo previous change, not needed.
36871
36872         * scn-nlit.adb: Undo previous changes, not needed.
36873
36874         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
36875
36876         * scn.adb:
36877         (Accumulate_Checksum): Use System.CRC32.
36878         (Initialize_Checksum): New procedure.
36879         Remove other changes of previous revision.
36880
36881         * sinput-p.adb: Undo previous change, not needed.
36882
36883         * sinput.adb: Undo previous change, not needed.
36884
36885         * sinput-l.adb: Undo previous change, not needed.
36886
36887         * sinput.ads: Undo previous change, not needed.  Keep only comment
36888         on new checksum algorithm
36889
36890         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
36891         Also remove a-tags and a-stream from GNAT sources.
36892
36893         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
36894
36895         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
36896
36897 2001-10-11  Geert Bosch  <bosch@gnat.com>
36898
36899         * einfo.h: Regenerate.
36900
36901         * nmake.ads: Regenerate.
36902
36903         * nmake.adb: Regenerate.
36904
36905         * sinfo.h: Regenerate.
36906
36907         * treeprs.adb: Regenerate.
36908
36909 2001-10-10  Geert Bosch  <bosch@gnat.com>
36910
36911         * gnat-style.texi: New file describing coding guidelines for Ada.
36912
36913 2001-10-10  Ed Schonberg  <schonber@gnat.com>
36914
36915         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
36916         is Flag174.
36917
36918 2001-10-10  Geert Bosch  <bosch@gnat.com>
36919
36920         * snames.ads: Add new names for project facility.
36921
36922         * snames.adb: Update to reflect snames.ads changes.
36923
36924         * snames.h: Update to reflect snames.ads changes.
36925
36926 2001-10-10  Vincent Celier  <celier@gnat.com>
36927
36928         * make.adb:
36929         (Add_Switches): reflect the changes for the switches attributes
36930         Default_Switches indexed by the programming language,
36931         Switches indexed by the file name.
36932         (Collect_Arguments_And_Compile): Idem.
36933         Reflect the attribute name changes.
36934
36935         * prj-attr.adb:
36936         (Initialisation_Data): Change the names of some packages and
36937         attributes.
36938         (Initialize): process case insensitive associative arrays.
36939
36940         * prj-attr.ads:
36941         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
36942
36943         * prj-dect.adb:
36944         (Parse_Attribute_Declaration): For case insensitive associative
36945          arrays, set the index string to lower case.
36946
36947         * prj-env.adb:
36948         Reflect the changes of the project attributes.
36949
36950         * prj-nmsc.adb:
36951         Replace Check_Naming_Scheme by Ada_Check and
36952         Language_Independent_Check.
36953
36954         * prj-nmsc.ads:
36955         Replaced Check_Naming_Scheme by 2 procedures:
36956         Ada_Check and Language_Independent_Check.
36957
36958         * prj-proc.adb:
36959         (Process_Declarative_Items): For case-insensitive associative
36960         arrays, set the index string to lower case.
36961         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
36962         Prj.Nmsc.Check_Naming_Scheme.
36963
36964         * prj-tree.adb:
36965         (Case_Insensitive): New function
36966         (Set_Case_Insensitive): New procedure
36967
36968         * prj-tree.ads:
36969         (Case_Insensitive): New function
36970         (Set_Case_Insensitive): New procedure
36971         (Project_Node_Record): New flag Case_Insensitive.
36972
36973         * prj-util.adb:
36974         (Value_Of): new function to get the string value of a single
36975         string variable or attribute.
36976
36977         * prj-util.ads:
36978         (Value_Of): new function to get the string value of a single
36979         string variable or attribute.
36980
36981         * prj.adb:
36982         (Ada_Default_Spec_Suffix): New function
36983         (Ada_Default_Impl_Suffix): New function
36984         Change definitions of several constants to reflect
36985         new components of record types.
36986
36987         * prj.ads:
36988         (Naming_Data): Change several components to reflect new
36989         elements of naming schemes.
36990         (Project_Data): New flags Sources_Present and
36991         Language_Independent_Checked.
36992         (Ada_Default_Spec_Suffix): New function.
36993         (Ada_Default_Impl_Suffix): New function.
36994
36995         * snames.ads:
36996         Modification of predefined names for project manager: added
36997         Implementation, Specification_Exceptions, Implementation_Exceptions,
36998         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
36999         Default_Switches, _Languages, Builder, Cross_Reference,
37000         Finder. Removed Body_Part, Specification_Append, Body_Append,
37001         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
37002         Gnatlink.
37003
37004         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
37005         Add comments.
37006
37007         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
37008         not that it is Nil_Variable_Value.
37009
37010         * prj.ads: Add ??? for uncommented declarations
37011
37012 2001-10-10  Ed Schonberg  <schonber@gnat.com>
37013
37014         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
37015         constant, do not indicate possible modification, so that gigi can
37016         treat it as a bona fide constant.
37017
37018 2001-10-10  Robert Dewar  <dewar@gnat.com>
37019
37020         * sem_prag.adb: Add processing for pragma External.
37021
37022         * snames.ads: Add entry for pragma External.
37023
37024         * par-prag.adb: Add pragma External.
37025
37026         * snames.adb: Updated to match snames.ads.
37027
37028 2001-10-10  Ed Schonberg  <schonber@gnat.com>
37029
37030         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
37031         a dynamic task if the allocator appears in an indexed assignment
37032         or selected component assignment.
37033
37034         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
37035         For a dynamic task in an assignment statement, use target of
37036         assignment to generate meaningful name.
37037
37038 2001-10-10  Ed Schonberg  <schonber@gnat.com>
37039
37040         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
37041         a generic package.
37042
37043         * einfo.ads: Body_Entity is also defined for generic package.
37044         Documentation change only
37045
37046         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
37047         others_choice for a discriminated component initialization,
37048         convert discriminant references into the corresponding discriminals.
37049
37050         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
37051         only if original type is private and expression has to be wrapped
37052         in a conversion.
37053
37054         * checks.adb:
37055         (Apply_Constraint_Check): Do not perform length check
37056         if expression is an aggregate with only an others_choice.
37057         (Length_N_Cond): two references to the same in_parameter
37058         (typically the discriminal in an init_proc) denote the same value.
37059         Two useful optimization uncovered by bugfixes above.
37060
37061 2001-10-10  Robert Dewar  <dewar@gnat.com>
37062
37063         * xeinfo.adb: Change int to char in translation of enumeration types.
37064         This fixes a problem in the C representation of component alignment.
37065         Add 2001 to copyright notice
37066
37067 2001-10-10  Richard Kenner  <kenner@gnat.com>
37068
37069         * decl.c: (validate_size): Do check size of object of integral type
37070         if it is a packed array type.
37071
37072 2001-10-10  Richard Kenner  <kenner@gnat.com>
37073
37074         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
37075         VAR_DECL for constant if not Is_Public but -O0.
37076
37077 2001-10-10  Richard Kenner  <kenner@gnat.com>
37078
37079         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
37080
37081 2001-10-10  Geert Bosch  <bosch@gnat.com>
37082
37083         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
37084         use '/' as switch character, allowing for absolute file names.
37085
37086 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
37087
37088         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
37089         FSF address.
37090
37091 2001-10-08  Geert Bosch  <bosch@gnat.com>
37092
37093         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
37094         Automatically build utilities when files need to be regenerated.
37095
37096 2001-10-08  Geert Bosch  <bosch@gnat.com>
37097
37098         * xsnames.adb: New utility for updating snames.ads and snames.adb
37099
37100 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
37101
37102         * Make-lang.in (ADAFLAGS): Add -W -Wall.
37103         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
37104         (gnat1): Also depend on attribs.o.
37105         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
37106         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
37107         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
37108         (ADAFLAGS): Add -W -Wall.
37109         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
37110         take out CFLAGS.
37111
37112         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
37113         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
37114         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
37115         Use $(ADAC), not $(CC), as compilation command.
37116
37117         (gnattools): Depend directly on tools to build, don't use
37118         recursive make.
37119         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
37120
37121         * einfo.h, sinfo.h: New files (autogenerated).
37122
37123 2001-10-08  Richard Henderson  <rth@redhat.com>
37124
37125         * comperr.adb (Abort_In_Progress): New.
37126         (Compiler_Abort): Use it to prevent recursion.
37127
37128 2001-10-08  Robert Dewar  <dewar@gnat.com>
37129
37130         * atree.adb: Set Error_Posted in Error node, helps error recovery.
37131
37132         * par-endh.adb (Output_End_Expected): We should also not test
37133         Error_Posted on the Error node, since now it is always set.
37134
37135         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
37136         to help error recovery. Part of general work on 9407-004.
37137
37138         * par.adb: Add ??? for misuse of error
37139
37140         * sem_res.adb:
37141         (Resolve): Defend against Error, fixes 9407-003.
37142         (Resolve_Discrete_Subtype_Indication): Defend against Error.
37143
37144         * sinfo.ads (N_Error): Now has Etype field (which will be set
37145         to Any_Type to help error recovery).
37146
37147 2001-10-08  Richard Kenner  <kenner@gnat.com>
37148
37149         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
37150         Consistently set MEM attributes from expression; fixes
37151         bootstrap failure on x86.
37152
37153 2001-10-08  Geert Bosch  <bosch@gnat.com>
37154
37155         * 5oosinte.adb: Add 2001 to copyright notice.
37156
37157 2001-10-08  Geert Bosch  <bosch@gnat.com>
37158
37159         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
37160
37161         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
37162
37163 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
37164
37165         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
37166
37167 2001-10-05  Geert Bosch  <bosch@gnat.com>
37168
37169         * adaint.h: Small formatting fix.
37170
37171 2001-10-04  Geert Bosch  <bosch@gnat.com>
37172
37173         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
37174         Arg is int, not FILE *, in dummy version of functions.
37175
37176         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
37177         Arg is int, not FILE *.
37178
37179 2001-10-04  Geert Bosch  <bosch@gnat.com>
37180
37181         * 3lsoccon.ads: Added file, missed with initial check ins.
37182
37183         * 4lintnam.ads: Fix header format.
37184         Change Linux to GNU/Linux.
37185
37186         * 5iosinte.adb: Change Linux to GNU/Linux.
37187
37188         * 5iosinte.ads: Change Linux to GNU/Linux.
37189
37190         * 5itaprop.adb: Change Linux to GNU/Linux.
37191
37192         * 5itaspri.ads: Change Linux to GNU/Linux.
37193         Update copyright notice.
37194
37195         * 5lintman.adb: Change Linux to GNU/Linux.
37196
37197         * 5lml-tgt.adb: Change Linux to GNU/Linux.
37198
37199         * 5losinte.ads: Change Linux to GNU/Linux.
37200
37201         * 5lsystem.ads: Change Linux to GNU/Linux.
37202
37203         * 5qosinte.adb: Change Linux to GNU/Linux.
37204
37205         * 5qosinte.ads: Change Linux to GNU/Linux.
37206
37207         * 5qparame.ads: Change Linux to GNU/Linux.
37208
37209         * 5qtaprop.adb: Change Linux to GNU/Linux.
37210
37211         * 5qtaspri.ads: Change Linux to GNU/Linux.
37212         Add 2001 to copyright notice.
37213
37214         * 5vintman.ads: Change Linux to GNU/Linux.
37215         Fix header format.  Add 2001 to copyright notice.
37216
37217         * g-soccon.ads: Change Linux to GNU/Linux.
37218
37219         * g-trasym.ads: Change Linux to GNU/Linux.
37220         Add 2001 to copyright notice.
37221
37222         * memtrack.adb: Change Linux to GNU/Linux.
37223
37224         * s-intman.ads: Change Linux to GNU/Linux.
37225         Add 2001 to copyright notice.  Fix header format.
37226
37227         * s-stache.adb: Change Linux to GNU/Linux.
37228
37229         * adaint.c: Change Linux to GNU/Linux.
37230
37231         * cio.c: Change Linux to GNU/Linux.
37232
37233         * cstreams.c: Change Linux to GNU/Linux.
37234
37235         * init.c: Change Linux to GNU/Linux.
37236
37237         * gmem.c: Change Linux to GNU/Linux.
37238
37239         * tracebak.c: Change Linux to GNU/Linux.
37240
37241
37242 2001-10-02  Geert Bosch  <bosch@gnat.com>
37243
37244         * misc.c (insert_default_attributes): Add dummy version.