OSDN Git Service

2007-04-20 Ed Schonberg <schonberg@adacore.com>
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2007-05-22  Alexandre Oliva  <aoliva@redhat.com>
2
3         * misc.c (enumerate_modes): Consider log2_b to always be one.
4
5 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
6
7         * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
8
9 2007-05-02  Pascal Obry  <obry@adacore.com>
10
11         * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
12         to use Stream_IO.File_Type. This is needed to make use of the UTF-8
13         encoding support of Stream_IO.
14         (Write_Unit): Idem.
15
16         * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
17         filename and corresponding encoding to match the OS requirement.
18         (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
19         routine will fail on specific devices like CON: AUX: ...
20
21         PR ada/29856: Add missing braces
22
23 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
24
25         PR ada/31660
26         * ada-tree.h (lang_tree_node): Fix typo in chain_next.
27
28 2007-04-21  Jan Hubicka  <jh@suse.cz>
29
30         * misc.c (gnat_expand_body): Don't call target for destructors,
31         avoid redundant check on syntax errors.
32
33 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
34
35         * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
36         instead of checking GIMPLE_STMT_P in chain_next.
37
38 2007-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
39
40         PR ada/31576
41         * system-linux-alpha.ads: Disable constant condition warning for the
42         Default_Bit_Order variable.
43         * system-linux-s390.ads: Likewise.
44         * system-linux-s390x.ads: Likewise.
45         * system-linux-sparc.ads: Likewise.
46
47 2007-04-06  Javier Miranda  <miranda@adacore.com>
48             Matt Heaney  <heaney@adacore.com>
49             Robert Dewar  <dewar@adacore.com>
50
51         a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
52         a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
53         a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
54         a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
55         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
56         a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
57         a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
58         a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
59         a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
60         a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
61         a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
62         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
63         a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
64         a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
65         a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
66         a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
67         a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
68         i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
69         unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
70         a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
71         a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
72         a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
73         expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
74         s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
75         s-taprop-tru64.adb, s-taprop-irix.adb,
76         s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
77         s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
78         s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
79         s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb, 
80         s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads, 
81         a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb, 
82         a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads, 
83         g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads, 
84         s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb, 
85         s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads, 
86         s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb, 
87         s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, 
88         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb, 
89         s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb, 
90         a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads, 
91         a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads, 
92         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb, 
93         a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
94         a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads, 
95         a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
96         access types.
97         Update documentation.
98         Minor rewording.
99
100 2007-04-06  Robert Dewar  <dewar@adacore.com>
101
102         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
103         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
104         system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
105         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
106         system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
107         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
108         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
109         system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
110         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
111         system-hpux-ia64.ads, targparm.adb,
112         targparm.ads (Functions_Return_By_DSP_On_Target): Removed
113
114         * system.ads: Move Functions_Return_By_DSP to obsolete section,
115         kept for bootstrap purposes only.
116
117 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
118
119         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
120         s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
121         s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
122         (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
123
124 2007-04-06  Robert Dewar  <dewar@adacore.com>
125
126         * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
127         (Local_Raise): New dummy procedure called when a raise is converted
128         to a local goto. Used for debugger to detect that the exception
129         is raised.
130
131         * debug.adb: Document new d.g flag (expand local raise statements to
132         gotos even if pragma Restriction (No_Exception_Propagation) is not set)
133
134         * exp_sel.adb: Use Make_Implicit_Exception_Handler
135
136         * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
137         suppress warnings for unused handlers.
138         (Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
139         warnings for raise statements not handled locally.
140         (Get_RT_Exception_Entity): New function
141         (Get_Local_Call_Entity): New function
142         (Find_Local_Handler): New function
143         (Warn_If_No_Propagation): New procedure
144         (Expand_At_End_Handler): Call Make_Implicit_Handler
145         (Expand_Exception_Handlers): Major additions to deal with local handlers
146         (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
147         Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
148         for local raise
149
150         * exp_ch11.ads (Get_RT_Exception_Entity): New function
151         (Get_Local_Call_Entity): New function
152
153         * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
154         of restrictions that the binder will never suggest adding.
155
156         * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
157         to No_Elist.
158
159         * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
160         be with'ed in the presence of pragma Restriction
161         (No_Exception_Propagation).
162
163         * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
164
165         * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
166         parameter, then the handler is not a suitable target for a local raise,
167         and this is a violation of restriction No_Exception_Propagation.
168         (Analyze_Handled_Statements): Analyze choice parameters in exception
169         handlers before analyzing statement sequence (needed for proper
170         detection of local raise statements).
171         (Analyze_Raise_Statement): Reraise statement is a violation of the
172         No_Exception_Propagation restriction.
173
174         * s-rident.ads: Add new restriction No_Exception_Propagation
175
176         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
177         function, like Make_Exception_Handler but sets Local_Raise_Statements
178         to No_List.
179         (Add_Unique_Serial_Number): Deal with case where this is called during
180         processing of configuration pragmas.
181
182 2007-04-06  Thomas Quinot  <quinot@adacore.com>
183             Pat Rogers  <rogers@adacore.com>
184             Pascal Obry  <obry@adacore.com>
185
186         * g-stsifd-sockets.adb: New file.
187
188         * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
189         g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
190         g-socthi-vms.adb: Move signalling
191         fd management to a nested package, so that they can conveniently be
192         moved to a subunit that is shared across Windows, VMS, and VxWorks
193         (Ada implementation) or completed with imported bodies from socket.c
194         (UNIX case).
195         (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
196         subprograms.
197         (Check_Selector): Use Read_Signalling_Fd to read and discard data from
198         the signalling file descriptor.
199         (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
200         signalling file descriptor.
201         (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
202         instead of creating a pair of sockets for signalling here.
203
204         * g-socthi.adb: Ditto.
205         Set the runtime process to ignore SIGPIPEs on platforms that support
206         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
207
208         * g-socthi-mingw.adb: Ditto.
209         (WS_Version): Use Windows 2.2.
210         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
211
212         * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
213         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
214
215         * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
216         added GNAT byte swapping facility
217         Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
218
219         * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
220
221         * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
222         New subprograms.
223         (__gnat_create_signalling_fds): New subprogram.
224         Set the runtime process to ignore SIGPIPEs on platforms that support
225         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
226
227 2007-04-06  Hristian Kirtchev  <kirtchev@adacore.com>
228             Vincent Celier  <celier@adacore.com>
229
230         * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
231         New version of Ada.Calendar which supports the new upper bound of Ada
232         time (2399-12-31 86_399.999999999).
233         The following modifications have been made to the package:
234          - New representation of time as count of nanoseconds since the start of
235            Ada time (1901-1-1 0.0).
236          - Target independent Split and Time_Of routines which service both
237            Ada 95 and Ada 2005 code.
238          - Target independent interface to the Ada 2005 children of Calendar.
239          - Integrated leap seconds into Ada 95 and Ada 2005 mode.
240          - Handling of non-leap centenial years.
241          - Updated clock function.
242          - Updated arithmetic and comparison operators.
243
244         * a-caldel.adb (To_Duration): Add call to target independent routine in
245         Ada.Calendar to handle the conversion of time to duration.
246
247         * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
248         (UTC Offset).
249         If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
250         set off to 0.
251         (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
252         targets do not have a natural time zone, GMT is used as a default.
253         (__gnat_get_task_options): New.
254
255         * a-direct.adb (Modification_Time): Add with and use clauses for
256         Ada.Calendar and Ada.
257         Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
258         since it is no longer needed.
259         (Duration_To_Time): Removed.
260         (OS_Time_To_Long_Integer): Removed.
261         (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
262         Formatting Time_Of routines which automatically handle time zones,
263         buffer periods and leap seconds.
264
265         * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
266         target independent routines in Ada.Calendar.
267
268         * a-calfor.ads, a-calfor.adb: 
269         Code cleanup and addition of validity checks in various routines.
270         (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
271         Ada.Calendar.
272
273         * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
274         independent routine in Ada.Calendar.
275
276 2007-04-06  Olivier Hainque  <hainque@adacore.com>
277
278         * adaint.c: 
279         (convert_addresses): Adjust prototype and dummy definition to expect an
280          extra file_name argument.
281
282         * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
283         filling the now expected file_name argument with the appropriate
284         argv[0] expansion.
285         (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
286         (tracebk): Array of void * instead of char *, corresponding to what
287          convert_addresses expects.
288         (exename): New static global, to hold the executable file name to be
289         used in all convert_addresses invocations.
290         (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
291         change.
292         (__gnat_gmem_a2l_initialize): Resolve exename.
293         (__gnat_convert_addresses): Use exename as the convert_addresses
294         file_name argument.
295
296         * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
297         "convert_addresses", now expecting a filename argument. Import the
298         necessary entities to compute the filename to use and pass it to
299         convert_addresses.
300
301 2007-04-06  Matt Gingell  <gingell@adacore.com>
302
303         * system-aix.ads: Back out previous change.
304         (Functions_Return_By_DSP): Removed
305
306 2007-04-06  Pascal Obry  <obry@adacore.com>
307
308         * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
309         or the monotonic used by Ada.Real_Time) to compute the sleep duration
310         on Windows.
311
312 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
313
314         * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
315         function. Its value changes in different VxWorks versions, and it is
316         now handled by the function __gnat_get_task_options.
317
318         * s-taprop-vxworks.adb (Create_Task): Call the function
319         __gnat_get_task_options to get the required options for creating a task.
320
321 2007-04-06  Pascal Obry  <obry@adacore.com>
322             Thomas Quinot  <quinot@adacore.com>
323
324         * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
325         dealing with filename.
326         (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
327         filename from a standard string to a wide-string depending on the
328         encoding value.
329         (__gnat_freopen): Idem.
330         (__gnat_current_time): New function (wrapper for time(3) standard C
331         function).
332
333         * g-os_lib.ads (Current_Time): New function. Returns the current
334         system time as an OS_Time value.
335
336         * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
337         (Monotonic_Clock): Same.
338
339 2007-04-06  Quentin Ochem  <ochem@adacore.com>
340
341         * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
342         not on a natural.
343         (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
344
345 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
346
347         * a-retide.adb: Add elaboration code to ensure that the tasking run
348         time is initialized when using delay operations even when no task is
349         created.
350
351 2007-04-06  Javier Miranda  <miranda@adacore.com>
352
353         * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
354         component Num_Prim_Ops.
355         (Set_Num_Prim_Ops): Removed.
356         Remove all the assertions because all the routines of this
357         package are inline always.
358         (Get_Offset_Index): Add support to primary dispatch tables.
359         Move the documentation about the dispatch table to a-tags.ads
360         (Set_External_Tag): Removed
361         (Inherit_TSD): Removed.
362         (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
363         moved to a-tags.ads
364         (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
365         Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
366         of the TSD field "Table" because this field has been renamed to
367         "Ifaces_Table".
368         (Inherit_CPP_DT): Removed.
369         (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
370         Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
371         declarations have been moved to a-tags.ads
372         (Check_Size): Removed.
373         (Expanded_Name): Updated to get access to the new field of TSD
374         containing the address of the expanded name.
375         (Get_Access_Level/Set_Access_Level): Removed.
376         (Get_Predefined_Prim_Op_Address): Removed.
377         (Set_Predefined_Prim_Op_Address): Removed.
378         (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
379         (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
380         (Set_Expanded_Name): Removed.
381         (Inherit_DT): Removed.
382         (Inherit_CPP_DT): Removed.
383         (Set_RC_Offset): Removed.
384         (Set_TSD): Removed.
385         (Base_Address): New function that displaces "this" to point to the base
386         of the object (that is, to point to the primary tag of the object).
387
388 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
389             Javier Miranda  <miranda@adacore.com>
390
391         * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
392         anonymous access component, do not create a master_id if type already
393         has one, as may happen if the type is a subcomponent of a packed array
394         type.
395         (Build_Init_Procedure, Component_Needs_Simple_Initialization,
396         Initialize_Tag): Remove code associated with the old CPP pragmas.
397         CPP_Virtual and CPP_Vtable are no longer supported.
398         (Build_Offset_To_Top_Internal): Add support for concurrent record types
399         (Build_Offset_To_Top_Functions): Add support for concurrent record types
400         (Freeze_Record_Type): Remove call to
401         Init_Predefined_Interface_Primitives.
402         (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
403         code required to initialize the tags of the secondary dispatch tables.
404         This leaves the algoritm more clear.
405         (Init_Secondary_Tags): Add support for concurrent record types
406         (Make_Predefined_Primitive_Specs): Code cleanup.
407         (Predefined_Primitive_Bodies): Code cleanup.
408         (Build_Master_Renaming): New local subprogram.
409         (Expand_N_Full_Type_Declaration): Build the master_id associated with
410         anonymous access to task type components.
411         (Expand_N_Subtype_Indication): The bounds of a range constraint in a
412         subtype indication are resolved during analysis, and must not be done
413         here.
414         (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
415
416 2007-04-06  Geert Bosch  <bosch@adacore.com>
417             Ed Schonberg  <schonberg@adacore.com>
418             Javier Miranda  <miranda@adacore.com>
419             Bob Duff  <duff@adacore.com>
420
421         * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
422         for conversion of a Float_Type'Truncation to integer.
423
424         * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
425         check if a node is an attribute that can be handled directly by the
426         back end.
427         (Expand_N_Attribute_Reference): Suppress expansion of floating-point
428         attributes that can be handled directly by the back end.
429         (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
430         use new predicate Is_Access_Protected_Subprogram_Type.
431         (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
432         and Unchecked_Union if it is generated as part of the default  Output
433         procedure for a type with default discriminants.
434         (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
435         if we are compiling under restriction No_Dispatching_Calls.
436         (Constrained): Use Underlying_Type, in case the type is private without
437         discriminants, but the full type has discriminants.
438         (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
439         call to Build_Get_Access_Level.
440         (Expand_N_Attribute_Reference): The use of 'Address with class-wide
441         interface objects requires a call to the run-time subprogram that
442         returns the base address of the object.
443         (Valid_Conversion): Improve error message on illegal attempt to store
444         an anonymous access to subprogram value into a record component.
445
446         * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
447         null".
448         (Simplify_Type_Conversion): New procedure that performs simplification
449         of Int_Type (Float_Type'Truncation (X)).
450         (Resolve_Type_Conversion): Call above procedure after resolving operand
451         and before performing checks. This replaces the existing ineffective
452         code in Exp_Ch4.
453         (Set_String_Literal_Subtype): When creating the internal static lower
454         bound subtype for a string literal, use a newly created copy of the
455         subtree representing the lower bound.
456         (Resolve_Call): Exclude build-in-place function calls from transient
457         scope treatment. Update comments to describe this exception.
458         (Resolve_Equality_Op): In case of dispatching call check violation of
459         restriction No_Dispatching_Calls.
460         (Resolve_Call): If the call returns an array, the context imposes the
461         component type of the array, and the function has one non-defaulted
462         parameter, rewrite the call as the indexing of a call with a single
463         parameter, to handle an Ada 2005 syntactic ambiguity for calls written
464         in prefix form.
465         (Resolve_Actuals): If an actual is an allocator for an access parameter,
466         the master of the created object is the innermost enclosing statement.
467         (Remove_Conversions): For a binary operator, check if type of second
468         formal is numeric, to check if an abstract interpretation is present
469         in the case of exponentiation as well.
470
471 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
472             Bob Duff  <duff@adacore.com>
473
474         * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
475         copying a parameter list in a call, set properly the First_Named_Formal
476         and Next_Named_Formal fields in the new list and in the enclosing call.
477         (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
478         names, to ease typing in the debugger. Improve comments.
479         (Watch_Node): New variable, intended to be set in the debugger.
480         (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
481         called when the watched node is created.
482         (New_Node_Debugging_Output): Combined version of local procedures
483         New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
484         with a parameter so that conditional breakpoints like "if Node = 12345"
485         work.
486         (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
487         Add Elist1 function
488
489 2007-04-06  Thomas Quinot  <quinot@adacore.com>
490             Ed Schonberg  <schonberg@adacore.com>
491             Gary Dismukes  <dismukes@adacore.com>
492
493         * checks.ads, checks.adb (Selected_Range_Checks): No range check is
494         required for a conversion between two access-to-unconstrained-array
495         types.
496         (Expr_Known_Valid): Validity checks do not apply to discriminants, but
497         to discriminant constraints on discriminant objects. This rule must
498         apply as well to discriminants of protected types in private components.
499         (Null_Exclusion_Static_Checks): If No_Initialization is set on an
500         object of a null-excluding access type then don't require the
501         the object declaration to have an expression and don't emit a
502         run-time check.
503
504 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
505             Eric Botcazou <botcazou@adacore.com>
506
507         * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
508         and made constant.
509
510         * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
511         Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
512         carry any.
513
514         * fe.h (Compiler_Abort): Add third parameter.
515
516         * misc.c (internal_error_function): Build third argument from current
517         input location and pass it to Compiler_Abort.
518
519 2007-04-06  Gary Dismukes  <dismukes@adacore.com>
520
521         * cstand.adb (Create_Standard): When the target's storage unit size is
522         greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
523         Standard_String.
524
525 2007-04-06  Nicolas Roche  <roche@adacore.com>
526
527         * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
528         absolute path can have the following form: device:/a/b. In this case
529         '/' should be inserted between the path and the filename.
530
531 2007-04-06  Olivier Hainque  <hainque@adacore.com>
532             Eric Botcazou <botcazou@adacore.com>
533
534         * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
535         VAR_DECL to a CONST_DECL we make for a public constant when we know the
536         corresponding definition has created the so made visible variable.
537         Handle anonymous access to protected subprogram.
538         (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
539         object with an address clause volatile.  Re-enable original fix.
540         <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
541         too.
542         (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
543         associated with either the Equivalent or Root type, instead of the
544         naked type node.
545         (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
546         subtree for every field of a global record type.
547         (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
548         discriminants, invoke again variable_size on its newly computed sizes.
549
550 2007-04-06  Robert Dewar  <dewar@adacore.com>
551             Thomas Quinot  <quinot@adacore.com>
552             Ed Schonberg  <schonberg@adacore.com>
553             Bob Duff  <duff@adacore.com>
554
555         * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
556         (Next_Component_Or_Discriminant): New function and procedure
557         (First_Index, First_Literal, Master_Id,
558         Set_First_Index, Set_First_Literal, Set_Master_Id):
559         Add missing Ekind assertions.
560         (Is_Access_Protected_Subprogram_Type): New predicate.
561         (Has_RACW): New entity flag, set on package entities to indicate that
562         the package contains the declaration of a remote accecss-to-classwide
563         type.
564         (E_Return_Statement): This node type has the Finalization_Chain_Entity
565         attribute, in case the result type has controlled parts.
566         (Requires_Overriding): Add this new flag, because "requires
567         overriding" is subtly different from "is abstract" (see AI-228).
568         (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
569         Is_Abstract_Type. Make sure these are called only when appropriate.
570         (Has_Pragma_Unreferenced_Objects): New flag
571
572         * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
573         class-wide, the tag of the right-hand side must be an exact match, not
574         an ancestor of that of the object on left-hand side.
575         (Move_Activation_Chain): New procedure to create the call to
576         System.Tasking.Stages.Move_Activation_Chain.
577         (Expand_N_Extended_Return_Statement): Generate code to call
578         System.Finalization_Implementation.Move_Final_List at the end of a
579         return statement if the function's result type has controlled parts.
580         Move asserts to Build_In_Place_Formal.
581         (Move_Final_List): New function to create the call statement.
582         (Expand_N_Assignment_Statement): In case of assignment to a class-wide
583         tagged type, replace generation of call to the run-time subprogram
584         CW_Membership by call to Build_CW_Membership.
585         (Expand_N_Return_Statement): Replace generation of call to the run-time
586         subprogram Get_Access_Level by call to Build_Get_Access_Level.
587         (Expand_N_Simple_Function_Return): Replace generation of call to the
588         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
589
590         * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
591         Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
592         access to protected operations.
593         (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
594         master and chain actual parameters to a build-in-place function call
595         involving tasks.
596         (BIP_Formal_Suffix): Add new enumeration literals to complete the case
597         statement.
598         (Make_Build_In_Place_Call_In_Allocator,
599         Make_Build_In_Place_Call_In_Anonymous_Context,
600         Make_Build_In_Place_Call_In_Assignment,
601         Make_Build_In_Place_Call_In_Object_Declaration): Call
602         Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
603         (Expand_Inlined_Call): If the subprogram is a null procedure, or a
604         stubbed procedure with a null body, replace the call with a null
605         statement without using the full inlining machinery, for efficiency
606         and to avoid invalid values in source file table entries.
607
608         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
609         renamings of calls to build-in-place functions.
610
611         * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
612         provides the functionality of RTE_Available to record components.
613         (RTU_Entity): The function Entity has been renamed to RTU_Entity
614         to avoid undesired overloading.
615         (Entity): New subprogram that returns the entity for the referened
616         unit. If this unit has not been loaded, it returns Empty.
617         (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
618         Remove no longer used entities.
619         (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
620         (RE_Type_Specific_Data): New entity.
621         (RE_Move_Any_Value): New entity.
622         (RE_TA_A, RE_Get_Any_Type): New entities.
623         (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
624          RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
625          RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
626         (Entity): New subprogram that returns the entity for the referened
627         unit. If this unit has not been loaded, it returns Empty.
628         (RTE): Addition of a new formal that extends the search to the scopes
629         of the record types found in the chain of the package.
630
631         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
632         "abstract subprograms must be visible" message, whether or not the type
633         is an interface; that is, remove the special case for interface types.
634         (Analyze_Function_Return): Remove error message "return of task objects
635         is not yet implemented" because this is now implemented.
636         (Create_Extra_Formals): Add the extra master and activation chain
637         formals in case the result type has tasks.
638         Remove error message "return of limited controlled objects is not yet
639         implemented".
640         (Create_Extra_Formals): Add the extra caller's finalization list formal
641         in case the result type has controlled parts.
642         (Process_Formals): In case of access formal types there is no need
643         to continue with the analysis of the formals if we already notified
644         errors.
645         (Check_Overriding_Indicator): Add code to check overriding of predefined
646         operators.
647         (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
648         flags for formals that do not require them,.
649         (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
650         hidden entity is use visible or directly visible.
651         (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
652         Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
653         Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
654         New_Overloaded_Entity): Split Is_Abstract flag into
655         Is_Abstract_Subprogram and Is_Abstract_Type.
656
657         * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
658         a return statement's finalization list to the caller's list, used for
659         build-in-place functions with result type with controlled parts.
660         Remove no longer used entities.
661
662         * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
663         longer needed, because the full type is now limited, and therefore a
664         pass-by-reference type.
665         (Foreign_Task_Level): New constant.
666
667         * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
668         move tasks from the activation chain belonging to a return statement to
669         the one passed in by the caller, and update the master to the one
670         passed in by the caller.
671         (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
672         of unactivated tasks, so we don't kill the ones that are being returned
673         by a build-in-place function.
674         (Create_Task): Ignore AI-280 for foreign threads.
675
676 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
677             Robert Dewar  <dewar@adacore.com>
678             Bob Duff  <duff@adacore.com>
679             Gary Dismukes  <dismukes@adacore.com>
680
681         * errout.adb (Unwind_Internal_Type): Use predicate
682         Is_Access__Protected_Subprogram_Type.
683
684         * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
685         (Freeze_Entity, packed array case): Do not override explicitly set
686         alignment and size clauses.
687         (Freeze_Entity):  An entity declared in an outer scope can be frozen if
688         the enclosing subprogram is a child unit body that acts as a spec.
689         (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
690         (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
691         Remove all code for DSP option
692
693         * layout.adb (Layout_Record_Type): Use First/
694         Next_Component_Or_Discriminant
695         (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
696         to handle properly the anonymous access case.
697
698         * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
699         for all access attributes, because overload resolution should work the
700         same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
701         causes the error message for the ambiguous "X'Access = Y'Access" and
702         "X'Unrestricted_Access = Y'Access" and so forth to match.
703         (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
704         now that anonymous access to protected operations have their own kind.
705         (Resolve_Attribute): In case of dispatching call check the violation of
706         restriction No_Dispatching_Calls.
707         (Check_Array_Type): Check new -gnatyA array index style option
708
709         * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
710         attempt to derive from a synchronized tagged type.
711         (Analyze_Type_Declaration): If there is a incomplete tagged view of the
712         type, inherit the class-wide type already created, because it may
713         already have been used in a self-referential anonymous access component.
714         (Mentions_T): Recognize self-referential anonymous access components
715         that use (a subtype of) the class-wide type of the enclosing type.
716         (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
717         Derived_Type for Prev formal on call to
718         Check_Anonymous_Access_Components rather than Empty.
719         (Make_Incomplete_Type_Declaration): Add test for case where the type has
720         a record extension in deciding whether to create a class-wide type,
721         rather than just checking Tagged_Present.
722         (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
723         to stand-alone object declarations as well as component declarations.
724         (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
725         prevent accidental overwriting when enclosing package appears in
726         a limited_with_clause.
727         (Array_Type_Declaration): If the component type is an anonymous access,
728         the associated_node for the itype is the type declaration itself.
729         (Add_Interface_Tag_Components): Modified to support concurrent
730         types with abstract interfaces.
731         (Check_Abstract_Interfaces): New subprogram that verifies the ARM
732         rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
733         (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
734         to complete the decoration of synchronized interface types. Add also
735         a call to Check_Abstract_Interfaces to verify the ARM rules.
736         (Derive_Interface_Subprograms): Modified to support concurrent types
737         with abstract interfaces.
738         (Analyze_Subtype_Indication): Resolve the range with the given subtype
739         mark, rather than delaying the full resolution depending on context.
740         (Analyze_Component_Declaration,Analyze_Interface_Declaration,
741         Analyze_Object_Declaration,Analyze_Subtype_Declaration,
742         Array_Type_Declaration,Build_Derived_Record_Type,
743         Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
744         Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
745         Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
746         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
747         called only when appropriate.
748         (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
749         to private type.
750         (Analyze_Subtype_Declaration): For an access subtype declaration, create
751         an itype reference for the anonymous designated subtype, to prevent
752         scope anonmalies in gigi.
753         (Build_Itype_Reference): New utility, to simplify construction of such
754         references.
755
756 2007-04-06  Vincent Celier  <celier@adacore.com>
757
758         * errutil.adb (Initialize): Initialize warnings table, if all warnings
759         are suppressed, supply an initial dummy entry covering all possible
760         source locations.
761
762         * make.adb (Scan_Make_Arg): Reject options that should start with "--"
763         and start with only one, such as "-RTS=none".
764         (Collect_Arguments): Do not check for sources outside of projects.
765         Do not collect arguments if project is externally built.
766         (Compile_Sources): Do nothing, not even check if the source is up to
767         date, if its project is externally built.
768         (Compile): When compiling a predefined source, add -gnatpg
769         as the second switch, after -c.
770         (Compile_Sources): Allow compilation of Annex J renames without -a
771         (Is_In_Object_Directory): Check if the ALI file is in the object
772         even if there is no project extension.
773         (Create_Binder_Mapping_File): Only put a unit in the mapping file for
774         gnatbind if the ALI file effectively exists.
775         (Initialize): Add the directory where gnatmake is invoked in front of
776         the path if it is invoked from a bin directory, even without directory
777         information, so that the correct GNAT tools will be used when spawned
778         without directory information.
779
780         * makeusg.adb: Change switch -S to -eS
781         Add lines for new switches -we, -wn and -ws
782         Add line for new switch -p
783
784         * prj-proc.adb (Process): Set Success to False when Warning_Mode is
785         Treat_As_Error and there are warnings.
786
787         * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
788         -gnatww Change gnatmake switch -S to -eS
789         (Scan_Make_Switches): Code reorganisation. Process separately multi
790         character switches and single character switches.
791         (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
792         False when switch is not recognized by gnatmake.
793         (Scan_Make_Switches): Set Setup_Projects True when -p or
794         --create-missing-dirs is specified.
795
796         * fname.adb (Is_Predefined_File_Name): Return True for annex J
797         renamings Calendar, Machine_Code, Unchecked_Conversion and
798         Unchecked_Deallocation only when Renamings_Included is True.
799
800         * par.adb: Allow library units Calendar, Machine_Code,
801         Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
802         when -gnatg is not specified.
803         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
804         there is no need to generate always a record_definition_node in case
805         of synchronized interface types.
806         (SIS_Entry_Active): Initialize global variable to False
807         (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
808         indicate cases where AI-447 says "not null" is legal.
809
810         * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
811
812         * makegpr.adb (Check_Compilation_Needed): Take into account dependency
813         files with with several lines starting with the object fileb name.
814         (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
815         is specified.
816         (Initialize): Add the directory where gprmake is invoked in front of the
817         path, if it is invoked from a bin directory or with directory
818         information, so that the correct GNAT tools will be used when invoked
819         directly.
820         (Check_Compilation_Needed): Process correctly backslashes on Windows.
821
822         * vms_data.ads: Update switches/qualifiers
823
824 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
825             Thomas Quinot  <quinot@adacore.com>
826
827         * exp_aggr.adb:
828         If the array component is a discriminated record, the array aggregate
829         is non-static even if the component is given by an aggregate with
830         static components.
831         (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
832         (Convert_Aggr_In_Allocator): If the allocator is for an access
833         discriminant and the type is controlled. do not place on a finalization
834         list at this point. The proper list will be determined from the
835         enclosing object.
836         (Build_Record_Aggr_Code): If aggregate has box-initialized components,
837         initialize record controller if needed, before the components, to ensure
838         that they are properly finalized.
839         (Build_Record_Aggr_Code): For the case of an array component that has a
840         corresponding array aggregate in the record aggregate, perform sliding
841         if required.
842
843 2007-04-06  Javier Miranda  <miranda@adacore.com>
844             Gary Dismukes  <dismukes@adacore.com>
845             Ed Schonberg  <schonberg@adacore.com>
846
847         * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
848         run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
849
850         * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
851         accessibility on class-wide allocators if the allocator occurs at the
852         same scope level as the allocator's type. The check is guaranteed to
853         succeed in that case, even when the expression originates from a
854         parameter of the containing subprogram.
855         (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
856         under No_Dispatching_Calls restriction. During the semantic analysis
857         we already notified such violation.
858         (Tagged_Membership): Constant folding. There is no need to check
859         the tag at run-time if the type of the right operand is non
860         class-wide abstract.
861         Replace call to Is_Ancestor by call to Is_Parent
862         to support concurrent types with interface types.
863         (Expand_N_Allocator): Add an assertion associated with the generation
864         of the master_id.
865         (Expand_N_Slice): Do not enable range check to nodes associated
866         with the frontend expansion of the dispatch table.
867         (Is_Local_Access_Discriminant): Subsidiary function to
868         Expand_N_Allocator.
869         (Tagged_Membership): Replace generation of call to the run-time
870         subprogram CW_Membership by call to Build_CW_Membership.
871         (Expand_Allocator_Expression): Replace generation of call to the
872         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
873
874         * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
875         initialize most the TSD components by means of an aggregate.
876         Modify the declaration of the object containing the TSD
877         because we now expand code that has a higher level of abstraction.
878         The TSD has a discriminant containing the Inheritance Depth Level,
879         value that is used in the membership test but also to fix the size
880         of the table of ancestors.
881         (Expand_Interface_Conversion): Insert function body at the closest place
882         to the conversion expression, to prevent access-before-elaboration
883         errors in the backend.
884         Code improved to reduce the size of the dispatch table if
885         compiling under restriction No_Dispatching_Calls plus code cleanup.
886         Code reorganization plus removal of calls to Set_Num_Prim_Ops
887         (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
888         (Expand_Dispatching_Call): Minor code reorganization plus addition of
889         code to return immediately if compiling under No_Dispatching_Calls
890         restriction.
891         (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
892         CPP_Virtual and CPP_Vtable are no longer supported.
893         (Expand_Interface_Conversion): Add missing support for interface type
894         derivations.
895         (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
896         Is_Parent to support concurrent types with interfaces.
897         (Init_Predefined_Interface_Primitives): Removed.
898         (Make_Secondary_DT): Modified to support concurrent record types.
899         (Set_All_DT_Position): Modified to support concurrent record types.
900         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
901         with Get_External_Tag, Inherit_TSD, Set_External_Tag.
902         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
903         with CW_Membership.
904         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
905         with Get_Access_Level, Get_Predefined_Prim_Op_Address,
906         Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
907         Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
908         Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
909         (Expand_Dispatching_Call): Replace generation of call to the run-time
910         subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
911         calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
912         Address.
913         (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
914         the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
915         Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
916         Build_Set_Prim_Op_Address.
917         (Get_Remotely_Callable): Subprogram removed.
918         (Init_Predefined_Interface_Primitives): Replace generation of call to
919         the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
920         Prims.
921
922         * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
923         First (Parameter_Associations ()) with the call to First_Actual that
924         returns an actual parameter expression for both named and positional
925         associations.
926
927         * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
928         check violation of restriction No_Dispatching_Calls.
929         (Check_Controlling_Type): A formal of a tagged incomplete type is a
930         controlling argument.
931
932         * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
933         First/Next_Component_Or_Discriminant
934         (Insert_Actions): Add entries for new N_Push and N_Pop nodes
935         (Find_Implemented_Interface): Removed. All the calls to this subprogram
936         specify Any_Limited_Interface, and this functionality is already
937         provided by the function Has_Abstract_Interfaces.
938         (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
939         support concurrent types implementing interfaces.
940         (Find_Implemented_Interface): Removed. All the calls to this subprogram
941         specify kind Any_Limited_Interface, and this functionality is already
942         provided by the function Has_Abstract_Interfaces.
943         (Remove_Side_Effects): replace Controlled_Type by
944         CW_Or_Controlled_Type whenever the issue is related to
945         using or not the secondary stack.
946
947         * par-ch12.adb (P_Formal_Type_Definition): Update calls to
948         P_Interface_Type_Definition to fulfill the new interface (the formal
949         Is_Synchronized is no longer required).
950
951         * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
952         Update dependencies.
953
954         * exp_atag.ads, exp_atag.adb: New file
955
956 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
957             Bob Duff  <duff@adacore.com>
958             Cyrille Comar  <comar@adacore.com>
959
960         * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
961         anonymous, use finalization list of enclosing dynamic scope.
962         (Expand_N_Package_Declaration): For a library package declaration
963         without a corresponding body, generate RACW subprogram bodies in the
964         spec (just as we do for the task activation call).
965         (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
966         Is_Abstract_Type. Make sure these are called only when appropriate.
967         Remove all code for DSP option
968         (CW_Or_Controlled_Type): new subprogram.
969
970 2007-04-06  Eric Botcazou <botcazou@adacore.com>
971             Ed Schonberg  <schonberg@adacore.com>
972             Gary Dismukes  <dismukes@adacore.com>
973
974         * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
975         parameter. If it is set to true, return a result capped according to
976         the global upper bound for the index of an entry family.
977         (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
978         (Build_Find_Body_Index): Adjust for above change.
979         (Entry_Index_Expression): Likewise.
980         (Is_Potentially_Large_Family): New function extracted from...
981         (Collect_Entry_Families): ...here. Call it to detect whether the family
982         is potentially large.
983         (Build_Entry_Count_Expression): If the family is potentially large, call
984         Family_Size with 'Cap' set to true.
985         (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
986         a protected version of an operation declared in the private part of
987         a protected object, because they may be invoked through a callback.
988         (Set_Privals): If the type of a private component is an anonymous access
989         type, do not create a new itype for each protected body.
990         If the body of a protected operation creates
991         controlled types (including allocators for class-widetypes), the
992         body of the corresponding protected subprogram must include a
993         finalization list.
994         (Build_Activation_Chain_Entity): Build the chain entity for extended
995         return statements.
996         (Type_Conformant_Parameters): Use common predicate Conforming_Types
997         to determine whether operation overrides an inherited primitive.
998         (Build_Wrapper_Spec): Add code to examine the parents while looking
999         for a possible overriding candidate.
1000         (Build_Simple_Entry_Call): Set No_Initialization on the object used to
1001         hold an actual parameter value since its initialization is separated
1002         from the the declaration. Prevents errors on null-excluding access
1003         formals.
1004
1005 2007-04-06  Thomas Quinot  <quinot@adacore.com>
1006
1007         * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
1008         Do an Unchecked_Conversion to handle the passage from the Underlying
1009         Type to the Base Type when calling Build_To_Any_Call and
1010         Build_From_Any_Call.
1011         (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
1012         E_Constant, depending upon Variable formal.
1013         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
1014         PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
1015         parameter that requires an extra constrained parameter, declare
1016         temporary for actual as a variable, not a constant.
1017         (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
1018         the unit being compiled is the one that contains the stub type.
1019         Change primitive operation name for the RACW associated with a RAS
1020         from Call to _Call so it cannot clash with any legal identifier.
1021         (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
1022         Is_RAS.
1023         (Append_RACW_Bodies): New subprogram.
1024         (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
1025         Add_Receiving_Stubs_To_Declarations functions.
1026         When expanding a package body, this list correspond to the
1027         statements in the HSS at the end of the pacakge.
1028         When expanding a package spec, this list correspond to the
1029         spec declarations.
1030         (Add_Receiving_Stubs_To_Declarations): Append the function
1031         registering the receiving stubs at the end of the 'Stmts' list.
1032         (RCI_Package_Locator): Pass the new Version generic formal when
1033         instantiating a RCI_Locator package.
1034         (Build_From_Any_Function): To compute the High bound for an
1035         unconstrained array actual, we add the Low bound with the length.
1036         Thus we must convert the low bound and the length to an appropriate
1037         type before doing the sum.
1038         (Build_Subprogram_Receiving_Stubs, PolyORB):
1039          * Retrieve the extra formals parameters at the
1040            end of the parameter stream.
1041          * Use Move_Any_Value to write back out parameters
1042            after executing the request as it is more efficient
1043            than Copy_Any_Value.
1044          * Build the any containing Extra Formals with the
1045            appropriate typecode.
1046         (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
1047         empty Component_List.
1048         (Build_Actual_Object_Declaration): New subprogram. Build and insert into
1049         the tree the declaration for an object that serves as actual parameter
1050         in server-side stubs.
1051         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
1052         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
1053         Use Build_Actual_Object_Declaration to prepare the actuals.
1054         (Add_Parameter_To_NVList): Set the parameter mode to In for
1055         Extra Constrained Parameters.
1056         (Build_General_Calling_Stubs): Set the parameter type to boolean for
1057         Extra Constrained parameters.
1058         (Build_To_Any_Function, Build_From_Any_Function,
1059         Built_TypeCode_Function): When Typ is implicit, call the correct
1060         function with the first not implicit parent type.
1061         (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
1062         (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
1063         typecode from the Etype. Therefore we retrieve the correct typecode
1064         with a call to Get_Any_Type.
1065         (Copy_Specification): Do controlling formal type substitution based on
1066         Is_Controlling_Formal flag, instead of caller-provided object type.
1067         (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
1068         a RACW primitive operation, we might get a subprogram declaration for an
1069         ancestor of the RACW designated type (not for the designated type
1070         itself), in the case where this operation is inherited. In this case we
1071         have no easy means of determining the original tagged type for which
1072         the primitive was declared, so instead we now rely on
1073         Copy_Specification to use the Is_Controlling_Formal flag to determine
1074         which formals require type substitution.
1075
1076 2007-04-06  Robert Dewar  <dewar@adacore.com>
1077             Ed Schonberg  <schonberg@adacore.com>
1078
1079         * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
1080         GNAT.Current_Exception are not allowed if pragma Restrictions
1081         (No_Exception_Propagation) is set and in any case make the associated
1082         handler unsuitable as a target for a local raise statement.
1083         (Expand_Dispatching_Constructor_Call): Replace generation of call to the
1084         run-time subprogram CW_Membership by call to Build_CW_Membership.
1085         (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
1086         by a function call, a temporary must be created before expanding the
1087         Constructor_Call itself, to prevent out-of-order elaboration in the
1088         back-end when stack checking is enabled..
1089
1090 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
1091
1092         * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
1093         result are the bounds of the left operand, not the right.
1094
1095 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
1096
1097         * exp_strm.adb
1098         (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
1099          discriminant defaults.
1100         (Build_Record_Or_Elementary_Output_Procedure): Ditto.
1101         (Make_Component_List_Attributes): Ditto.
1102
1103 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
1104             Bob Duff  <duff@adacore.com>
1105
1106         * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
1107         an association with a box as providing a value even though the
1108         initialization procedure for the type is not available.
1109         (Resolve_Record_Aggregate): Check that a choice of an association with a
1110         box corresponds to a component of the type.
1111         (Resolve_Record_Aggregate): Split Is_Abstract flag into
1112         Is_Abstract_Subprogram and Is_Abstract_Type.
1113
1114         * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
1115         assert.
1116
1117         * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
1118         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
1119         called only when appropriate.
1120
1121 2007-04-06  Olivier Hainque  <hainque@adacore.com>
1122
1123         * g-alleve.ads (Low Level Vector type definitions): Map each to the
1124         associated vector view instead of all to the unsigned char view.
1125
1126         * g-altcon.adb (Generic_Conversions): New internal generic package,
1127         offering facilities for all the Vector/View conversion routines
1128         implemented by this unit.
1129         (To_View/To_Vector - all versions): Reimplemented in a systematic
1130         manner, using the internal Generic_Conversions facilities.
1131
1132 2007-04-06  Pascal Obry  <obry@adacore.com>
1133
1134         * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
1135         string.
1136         (Create): Free the source string before storing the new one.
1137
1138 2007-04-06  Vincent Celier  <celier@adacore.com>
1139
1140         * g-debpoo.adb (Validity): New package with a complete new
1141         implementation of subprograms Is_Valid and Set_Valid.
1142         (Is_Valid): Move to local package Validity
1143         (Set_Valid): Move to local package Validity
1144
1145 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
1146
1147         * g-expect.adb (Get_Command_Output): When expanding the output buffer
1148         we must ensure that there is enough place for the new data we are going
1149         to copy in.
1150
1151 2007-04-06  Thomas Quinot  <quinot@adacore.com>
1152
1153         * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
1154         computation.
1155
1156 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
1157             Vincent Celier  <celier@adacore.com>
1158
1159         * gnatcmd.adb (B_Start): Add prefix of binder generated file.
1160         (Stack_String): Add this String that contains the name of the Stack
1161         package in the project file.
1162         (Packages_To_Check_By_Stack): Add this list that contains the packages
1163         to be checked by gnatstack, which are the naming and the stack packages.
1164         (Check_Files): If no .ci files were specified for gnatstack we add all
1165         the .ci files belonging to the projects, including binder generated
1166         files.
1167         (Non_VMS_Usage): Document that gnatstack accept project file switches.
1168         (GNATCmd): Update the B_Start variable if we are in a VMS environment.
1169         Add gnatstack to the list of commands that use project file related
1170         switches, and get the single attribute Switches from the stack package
1171         in a project file when calling gnatstack. Parse the -U flag for
1172         processing files belonging to all projects in the project tree.
1173         Remove all processing for command Setup
1174
1175         * prj-attr.adb: Add new package Stack with single attribute Switches
1176
1177         * vms_conv.ads (Command_Type): Add command Stack.
1178         Move to body declarations that are only used in the body: types Item_Id,
1179         Translation_Type, Item_Ptr, Item and its subtypes.
1180
1181         * vms_conv.adb: (Initialize): Add data for new command Stack.
1182         Add declarations moved from the spec: types Item_Id, Translation_Type,
1183         Item_Ptr, Item and its subtypes.
1184         (Cargs_Buffer): New table
1185         (Cargs): New Boolean global variable
1186         (Process_Buffer): New procedure to create arguments
1187         (Place): Put character in table Buffer or Cargs_Buffer depending on the
1188          value of Cargs.
1189         (Process_Argument): Set Cargs when processing qualifiers for GNAT
1190         COMPILE
1191         (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
1192         empty, for table Cargs_Buffer.
1193         (Initialize): Remove component Setup in Command_List
1194
1195 2007-04-06  Vincent Celier  <celier@adacore.com>
1196
1197         * gprep.adb (Process_Files.Process_One_File): Use full file name when
1198         issuing pragma Source_Reference.
1199
1200 2007-04-06  Emmanuel Briot  <briot@adacore.com>
1201
1202         * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
1203         [[:xdigit:]] character class.
1204         Also raise an exception when an invalid character class is used.
1205
1206 2007-04-06  Pascal Obry  <obry@adacore.com>
1207
1208         * i-cstrea.ads: (fopen): Add encoding parameter.
1209         (freopen): Idem.
1210         Change reference from a-sysdep.c to sysdep.c in comment.
1211         Update copyright notice.
1212         This set of patch add support for the encoding form parameter.
1213
1214         * mingw32.h (S2WSU): New macro to convert from a string to a
1215         wide-string using the UTF-8 encoding. The S2WS macro supports now only
1216         standard 8bits encoding.
1217         (WS2SU): As above but converting from wide-sring to string.
1218         This is needed as it is necessary to have access to both versions in the
1219         runtime for the form parameter encoding support.
1220         This set of patch add support for the encoding form parameter.
1221         (S2WS): Improve implementation to handle cases where the filename is not
1222         UTF-8 encoded. In this case we default to using the current code page
1223         for the conversion.
1224
1225         * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
1226         type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
1227         the constants defined in adaint.h.
1228         (fopen): Add encoding parameter.
1229         (freopen): Idem.
1230
1231         * s-ficobl.ads (AFCB): Add Encoding field to record the filename
1232         encoding. This is needed for the Reset routine (freopen low level-call).
1233
1234         * s-fileio.adb (Open): Decode encoding form parameter and set the
1235         corresponding encoding value into AFCB structure.
1236         (Reset): Pass the encoding value to freopen.
1237         (Close): Move the call to Lock_Task to the beginning of the procedure.
1238
1239 2007-04-06  Geert Bosch  <bosch@adacore.com>
1240             Robert Dewar  <dewar@adacore.com>
1241
1242         * i-fortra.ads: Add Double_Complex type.
1243
1244         * impunit.adb: (Is_Known_Unit): New function
1245         Add Gnat.Byte_Swapping
1246         Add GNAT.SHA1
1247         Add new Ada 2005 units
1248         Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
1249         Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
1250         Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
1251         Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
1252
1253         * impunit.ads (Is_Known_Unit): New function
1254
1255         * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
1256         a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
1257         a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
1258         g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
1259         s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
1260         s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
1261         New files.
1262
1263         * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
1264
1265         * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
1266
1267 2007-04-06  Eric Botcazou <botcazou@adacore.com>
1268             Arnaud Charlet  <charlet@adacore.com>
1269
1270         * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
1271         __gnat_adjust_context_for_raise.
1272         (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
1273         implementation of floating point operations as native x86 targets.
1274         So the FPU should be initialized in the same way using finit. Fix
1275         floating point operations accuracy issues.
1276         (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
1277         member in struct sigaction, so as to avoid warning for incompatible
1278         pointer types.
1279
1280 2007-04-06 Serguei Rybin <rybin@adacore.com>
1281
1282         * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
1283         switches from previously loaded tree
1284
1285 2007-04-06  Thomas Quinot  <quinot@adacore.com>
1286
1287         * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
1288         cases where a given dependency has a body or not.
1289         (Write_With_File_Names): New subprogram, common code for the two cases
1290         above.
1291
1292 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
1293             Javier Miranda  <miranda@adacore.com>
1294
1295         * lib-xref.ads, lib-xref.adb: 
1296         Modify the loop that collects type references, to include interface
1297         types that the type implements. List each of these interfaces when
1298         building the entry for the type.
1299         (Generate_Definition): Initialize component Def and Typ of new entry
1300         in table Xrefs, to avoid to have these components unitialized.
1301         (Output_References): Split Is_Abstract flag into
1302         Is_Abstract_Subprogram and Is_Abstract_Type.
1303         (Generate_Reference): Add barrier to do not generate the warning
1304         associated with Ada 2005 entities with entities generated by the
1305         expander.
1306
1307 2007-04-06  Robert Dewar  <dewar@adacore.com>
1308             Arnaud Charlet  <charlet@adacore.com>
1309             Vincent Celier  <celier@adacore.com>
1310
1311         * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
1312         Update 'Exception Handling Control' chapter which was outdated.
1313         Minor fix to documentation of -gnatwq
1314         Remove section "Adapting the Run Time to a New C++ Compiler" because
1315         it is now obsolete.
1316         Add passage on need of -nostart-files in some non-ada-main cases.
1317         Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
1318         Update documentation about Interfacing with C++
1319         Add documentation for new gnatmake switch -p
1320         Add missing protocol part in URLs.
1321         Document -gnatyA
1322         Document pragma Compile_Time_Error
1323         Add documentation for Object_Size indicating that stand alone
1324         objects can have a larger size in some cases.
1325         Add node for GNAT.Byte_Swapping, GNAT.SHA1
1326         Update reference to the Ravenscar profile.
1327         Document pragma Unreferenced_Objects
1328
1329         * gnat-style.texi: Fix typo
1330
1331 2007-04-06  Vincent Celier  <celier@adacore.com>
1332
1333         * mlib.adb (Building_Library): Only output "building a library..." in
1334         verbose mode
1335
1336         * mlib-prj.adb (Build_Library): Only output lists of object and ALI
1337         files in verbose mode.
1338
1339         * mlib-utl.adb (Ar): Only output the first object files when not in
1340         verbose mode.
1341         (Gcc): Do not display all the object files if not in verbose mode, only
1342         the first one.
1343
1344 2007-04-06  Robert Dewar  <dewar@adacore.com>
1345
1346         * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
1347         it no longer destroys the contents of Name_Buffer or Name_Len and
1348         non-standard and invalid names are handled better.
1349         (Get_Decoded_Name_String): Improve performance by using
1350         Name_Has_No_Encodings flag in the name table.
1351         (Is_Valid_Name): New function to determine whether a Name_Id is valid.
1352         Used for debugging printouts.
1353
1354 2007-04-06  Robert Dewar  <dewar@adacore.com>
1355             Javier Miranda  <miranda@adacore.com>
1356             Bob Duff  <duff@adacore.com>
1357
1358         * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
1359         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
1360         there is no need to generate always a record_definition_node in case
1361         of synchronized interface types.
1362         (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
1363         (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
1364         illegal in Ada 95, in cases where it is legal. Change the warnings to
1365         errors in other cases. Don't give the error unless the "not null"
1366         parses properly. Correct the source position at which the error occurs.
1367         (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
1368         P_Null_Exclusion, to suppress "not null" warnings.
1369         (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
1370         associated goto statements.
1371
1372         * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
1373         of END RECORD
1374
1375         * scans.ads (Type_Token_Location): New flag
1376
1377         * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
1378         (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
1379         P_Null_Exclusion, to suppress "not null" warnings.
1380
1381 2007-04-06  Robert Dewar  <dewar@adacore.com>
1382             Javier Miranda  <miranda@adacore.com>
1383             Bob Duff  <duff@adacore.com>
1384             Vincent Celier  <celier@adacore.com>
1385
1386         * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
1387         (Extensions_Allowed): No longer sets Ada_Version
1388         Entry for pragma Unreferenced_Objects
1389
1390         * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
1391         system.tasking if pragma priority used in a procedure
1392         (Analyze_Pragma, case Warning): Handle dot warning switches
1393         (Process_Compile_Time_Warning_Or_Error): New procedure
1394         (Analyze_Pragma): Add processing for Compile_Time_Error
1395         Add support for extra arguments External_Name and Link_Name.
1396         Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
1397         (Process_Import_Or_Interface): Add support for the use of pragma Import
1398         with tagged types.
1399         (Extensions_Allowed): No longer affects Ada_Version
1400         (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
1401         Is_Abstract_Type. Make sure these are called only when appropriate.
1402         Add processing for pragma Unreferenced_Objects
1403
1404         * snames.h, snames.ads, snames.adb: Add entry for pragma
1405         Compile_Time_Error
1406         Add new standard name Minimum_Binder_Options for new gprmake
1407         Add new standard names for gprmake: Archive_Suffix,
1408         Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
1409         Library_Support, Library_Version_Options,
1410         Shared_Library_Minimum_Options,
1411         Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
1412         Change Name_Call to Name_uCall so that it cannot clash with a legal
1413         subprogram name.
1414         Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
1415         Append C_Plus_Plus to convention identifiers as synonym for CPP
1416         Add new standard names Stack and Builder_Switches
1417         Add new standard names: Compiler_Minimum_Options, Global_Config_File,
1418         Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
1419         Run_Path_Option, Toolchain_Version.
1420         Entry for pragma Unreferenced_Objects
1421
1422         * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
1423         switches, without repetition of "eD". Make sure that last character of
1424         -gnatep= switch is not taken as -gnat switch character.
1425         Complete rewrite of circuit for handling saving compilation options
1426         Occasioned by need to support dot switchs for -gnatw, but cleans up
1427         things in general.
1428         -gnatX does not affect Ada_Version
1429         Include -gnatyA in -gnatg style switches
1430
1431         * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
1432         warnings on return objects.
1433         (Warn_On_Useless_Assignment): Exclude warnings on return objects
1434         (Set_Dot_Warning_Switch): New procedure
1435         (Check_References): Add missing case of test for
1436         Has_Pragma_Unreferenced_Objects
1437         (Output_Unreferenced_Messages): Implement effect of new pragma
1438         Unreferenced_Objects, remove special casing of limited controlled
1439         variables.
1440
1441 2007-04-06  Vincent Celier  <celier@adacore.com>
1442
1443         * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
1444         the default project path, initially done during elaboration of the
1445         package.
1446         If the prefix returned by Sdefault is null, get the prefix from a call
1447         to Executable_Prefix_Path.
1448         (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
1449         null.
1450
1451         * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
1452         canonical directory name to open the directory from which files are
1453         retrieved.
1454         (Record_Other_Sources): Idem.
1455         (Locate_Directory): Add the possibility to create automatically missing
1456         directories when Setup_Projects is True.
1457         Call Locate_Directory so that the directory will be created when
1458         Setup_Projects is True, for object dir, library dir, library ALI dir,
1459         library source copy dir and exec dir.
1460
1461         * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
1462         versions of GNAT.
1463
1464 2007-04-06  Robert Dewar  <dewar@adacore.com>
1465
1466         * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
1467         Use First/Next_Component_Or_Discriminant
1468         (Analyze_Record_Representation_Clause):
1469         Use First/Next_Component_Or_Discriminant
1470         (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
1471         (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
1472         definition if type is unconstrained.
1473         (Adjust_Record_For_Reverse_Bit_Order): New procedure
1474         (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
1475         Is_Abstract_Subprogram and Is_Abstract_Type.
1476         (Adjust_Record_For_Reverse_Bit_Order): New procedure
1477
1478         * repinfo.adb (List_Record_Info): Use First/
1479         Next_Component_Or_Discriminant.
1480
1481         * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
1482         New procedure.
1483
1484         * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
1485         Include -gnatyA in default switches
1486
1487         * opt.ads: (Warn_On_Non_Local_Exception): New flag
1488         (Warn_On_Reverse_Bit_Order): New flag
1489         (Extensions_Allowed): Update the documentation.
1490         (Warn_On_Questionable_Missing_Parens): Now on by default
1491
1492         * usage.adb: Add documentation of -gnatw.x/X switches
1493         Document new -gnatyA style switch
1494         -gnatq warnings are on by default
1495
1496 2007-04-06  Ed Falis  <falis@adacore.com>
1497
1498         * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
1499         full word is no longer compared twice.
1500
1501 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
1502
1503         * sem_ch10.adb (Install_Limited_Context_Clauses.
1504         Expand_Limited_With_Clause): Use a new copy of selector name in the
1505         call to Make_With_Clause. This fixes the tree structure for ASIS
1506         purposes. Nothing is changed in the compiler behaviour.
1507         (Process_Body_Clauses): Handle properly use clauses whose prefix is
1508         a package renaming.
1509         (Install_Limited_With_Clauses): Do not install non-limited view when it
1510         is still incomplete.
1511
1512 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
1513             Gary Dismukes  <dismukes@adacore.com>
1514
1515         * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
1516         when capturing size information, instead of base type, which for a
1517         formal array type will be the unconstrained type.
1518         (Analyze_Formal_Object_Declaration): Add check for illegal default
1519         expressions for a formal in object of a limited type.
1520         (Instantiate_Object): Ditto.
1521         (Check_Formal_Package_Instance): Skip entities that are formal objects,
1522         because they were defaulted in the formal package and no check applies
1523         to them.
1524         (Check_Formal_Package_Instance): Extend conformance check to other
1525         discrete types beyond Integer.
1526         (Process_Default): Copy directly the unmatched formal. A generic copy
1527         has already been performed in Analyze_Formal_Package.
1528         (Analyze_Associations): If a formal subprogram has no match, check for
1529         partial parametrization before looking for a default, to prevent
1530         spurious errors.
1531         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
1532         not set the instantiation environment before analyzing the actuals.
1533         Fixes regression on 8515-003 with implementation of AI-133.
1534         Set_Instance_Env checks whether the generic unit is a predefined
1535         unit, in which case the instance must be analyzed with the latest Ada
1536         mode. This setting must take place after analysis of the actuals,
1537         because the actuals must be analyzed and frozen in the Ada mode extant
1538         outside of the current instantiation.
1539         (Save_Env, Restore_Env): Preserve and restore the configuration
1540         parameters so that predefined units can be compiled in the proper Ada
1541         mode.
1542         (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
1543         Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
1544         and Is_Abstract_Type.
1545         (Analyze_Formal_Package): For better error recovery, Add exception
1546         handler to catch Instantion_Error, which can be raised in
1547         Analyze_Associations
1548
1549 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
1550             Bob Duff  <duff@adacore.com>
1551             Gary Dismukes  <dismukes@adacore.com>
1552
1553         * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
1554         prefix type is a discriminated subtype of the type of the formal.
1555         (Analyze_Allocator): Collect all coextensions regardless of the context.
1556         Whether they can be allocated statically is determined in exp_ch4.
1557         (Analyze_Selected_Component): If the prefix is a limited view and the
1558         non-limited view is available, use the non-limited one.
1559         (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
1560         therefore illegal), suggest a qualified expression rather than a type
1561         conversion, because a type conversion would be illegal in this context.
1562         (Anayze_Allocator): Trace recursively all nested allocators so that all
1563         coextensions are on the corresponding list for the root. Do no mark
1564         coextensions if the root allocator is within a declaration for a stack-
1565         allocated object, because the access discriminants will be allocated on
1566         the stack as well.
1567         (Analyze_Call): Remove restriction on calls to limited functions for the
1568         cases of generic actuals for formal objects, defaults for formal objects
1569         and defaults for record components.
1570         (Analyze_Allocator): Before analysis, chain coextensions on the proper
1571         element list. Their expansion is delayed until the enclosing allocator
1572         is processed and its finalization list constructed.
1573         (Try_Primitive_Operation): If the prefix is a concurrent type, looks
1574         for an operation with the given name among the primitive operations of
1575         the corresponding record type.
1576         (Analyze_Selected_Component): If the prefix is a task type that
1577         implements an interface, and there is no entry with the given name,
1578         check whether there is another primitive operation (e.g. a function)
1579         with that name.
1580         (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
1581         properly the indexing of a function call written in prefix form, where
1582         the function returns an array type, and all parameters of the function
1583         except the first have defaults.
1584         (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
1585         the original operands, rather than relocating them, for efficiency and
1586         to work properly when an operand is overloaded.
1587         (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
1588         Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
1589         (Analyze_Selected_Component): If the prefix is a private extension, only
1590         scan the visible components, not those of the full view.
1591         (Try_Primitive_Operation): If the operation is a procedure, collect all
1592         possible interpretations, as for a function, because in the presence of
1593         classwide parameters several primitive operations of the type can match
1594         the given arguments.
1595
1596 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
1597             Robert Dewar  <dewar@adacore.com>
1598
1599         * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
1600         tag-indeterminate call to an abstract function, when the left-hand side
1601         is not classwide.
1602         (Analyze_Loop_Statement): Improve detection of infinite loops
1603
1604 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
1605             Thomas Quinot  <quinot@adacore.com>
1606
1607         * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
1608         out of Analyze_Package_Declaration, because processing must be applied
1609         to package bodies as well, for deferred constants completed by pragmas.
1610         (Analyze_Package_Declaration): When the package declaration being
1611         analyzed does not require an explicit body, call Check_Completion.
1612         (May_Need_Implicit_Body): An implicit body is required when a package
1613         spec contains the declaration of a remote access-to-classwide type.
1614         (Analyze_Package_Body): If the package contains RACWs, append the
1615         pending subprogram bodies generated by exp_dist at the end of the body.
1616         (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
1617         Is_Abstract_Subprogram and Is_Abstract_Type.
1618         (Preserve_Full_Attributes): The full entity list is not an attribute
1619         that must be preserved from full to partial view.
1620
1621         * sem_dist.adb (Add_RAS_Dereference_TSS):
1622         Change primitive name to _Call so it cannot clash with any legal
1623         identifier, and be special-cased in Check_Completion.
1624         Mark the full view of the designated type for the RACW associated with
1625         a RAS as Comes_From_Source to get proper view switching when installing
1626         private declarations.
1627         Provite a placeholder nested package body along with the nested spec
1628         to have a place for Append_RACW_Bodies to generate the calling stubs
1629         and stream attributes.
1630
1631 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
1632             Robert Dewar  <dewar@adacore.com>
1633
1634         * sem_ch8.adb (Has_Components): If the argument is an incomplete type
1635         that is a limited view, check the non-limited view if available.
1636         (Undefined): Refine error message for missing with of Text_IO
1637         (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
1638         to distinguish real missing with cases.
1639         Fix format of all missing with messages
1640         (Analyze_Subprogram_Renaming): Emit proper error message on illegal
1641         renaming as body when renamed entity is abstract.
1642
1643 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
1644             Javier Miranda  <miranda@adacore.com>
1645
1646         * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
1647         predicate recursive, to handle complex expressions on literals whose
1648         spurious ambiguity comes from the abstract interpretation of some
1649         subexpression.
1650         (Interface_Present_In_Ancestor): Add support to concurrent record
1651         types.
1652         (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
1653         Is_Abstract_Subprogram and Is_Abstract_Type.
1654
1655 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
1656             Javier Miranda  <miranda@adacore.com>
1657
1658         * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
1659         dereference of a local object R created as a reference to another
1660         object O, use the access level of O.
1661         (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
1662         rather than local Same_Formal_Type, to check whether protected operation
1663         overrides an inherited one.
1664         (Same_Formal_Type): New predicate, used when matching signatures of
1665         overriding synchronized operations, to handle the case when a formal
1666         has a type that is a generic actual.
1667         (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
1668         predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
1669         (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
1670         syntactic ambiguities involving indexing of function calls that return
1671         arrays.
1672         (Abstract_Interface_List): New subprogram that returns the list of
1673         abstract interfaces associated with a concurrent type or a
1674         concurrent record type.
1675         (Interface_Present_In_Parent): New subprogram used to check if a
1676         given type or some of its parents implement a given interface.
1677         (Collect_Abstract_Interfaces): Add support for concurrent types
1678         with interface types.
1679         (Has_Abstract_Interfaces): Add support for concurrent types with
1680         interface types.
1681         (Is_Parent): New subprogram that determines whether E1 is a parent
1682         of E2. For a concurrent type its parent is the first element of its
1683         list of interface types; for other types this function provides the
1684         same result than Is_Ancestor.
1685         (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
1686         (Collect_Synchronized_Interfaces): Removed because the subprogram
1687         Collect_Abstract_Interfaces provides this functionality.
1688         (Collect_Abstract_Interfaces): Minor update to give support to
1689         concurrent types and thus avoid undesired code duplication.
1690         (Get_Subprogram_Entity): Handle entry calls.
1691         (May_Be_Lvalue): Include actuals that appear as in-out parameters in
1692         entry calls.
1693         (Enter_Name): Do not give -gnatwh hiding warning for record component
1694         entities, they never result in hiding.
1695
1696 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
1697             Robert Dewar  <dewar@adacore.com>
1698
1699         * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
1700         to chain nested components that are allocators for access discriminants
1701         of the enclosing object.
1702         Add N_Push and N_Pop nodes
1703         New field Exception_Label added
1704         (Local_Raise_Statements): New field in N_Exception_Handler_Node
1705         (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
1706         (Is_Coextension): New flag for allocators, to mark allocators that
1707         correspond to access discriminants of dynamically allocated objects.
1708         (N_Block_Statement): Document the fact that the corresponding entity
1709         can be an E_Return_Statement.
1710         (Is_Coextension): New flag for allocators.
1711         Remove all code for DSP option
1712
1713         * sprint.ads, sprint.adb: Display basic information for class_wide
1714         subtypes. Add handling of N_Push and N_Pop nodes
1715
1716 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
1717
1718         * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
1719         before propagating exception.
1720
1721 2007-04-06  Olivier Hainque  <hainque@adacore.com>
1722
1723         * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
1724         an address always within the call instruction from a return address.
1725
1726 2007-04-06  Olivier Hainque  <hainque@adacore.com>
1727             Eric Botcazou <botcazou@adacore.com>
1728
1729         * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
1730         expression with a COMPOUND_EXPR including the call instead of emitting
1731         the call directly here.
1732         (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
1733         high bound is constant and the slice is empty.  Tidy.
1734         (tree_transform, case N_Op_Not): Handle properly the case where the
1735         operation applies to a private type whose full view is a modular type.
1736         (Case_Statement_To_gnu): If an alternative is an E_Constant with an
1737         Address_Clause, use the associated Expression as the GNAT tree
1738         representing the choice value to ensure the corresponding GCC tree is
1739         of the proper kind.
1740         (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
1741         instead of just the operands, as the base GCC stabilize_reference does.
1742         <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
1743         requested; otherwise fail.
1744         (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
1745
1746 2007-04-06  Thomas Quinot  <quinot@adacore.com>
1747
1748         * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
1749         implementation of UI_Div.
1750         (UI_Div): Reimplement as a call to UI_Div_Rem.
1751         (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
1752         remainder, avoiding the cost of a multiplication and a subtraction.
1753         (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
1754         provides both quotient and remainder in a single computation.
1755         (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
1756         functions for uint.
1757         (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
1758         is undefined if the given n is not inversible.
1759
1760 2007-04-06  Olivier Hainque  <hainque@adacore.com>
1761
1762         * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
1763         BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
1764         opcodes.
1765
1766 2007-04-06  Eric Botcazou <botcazou@adacore.com>
1767             Olivier Hainque  <hainque@adacore.com>
1768
1769         * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
1770         when updating the contents of the old pointer to an unconstrained array.
1771         (end_subprog_body): Set error_gnat_node to Empty.
1772         (write_record_type_debug_info): Do not be unduly sparing with our bytes.
1773         (unchecked_convert): For subtype to base type conversions, require that
1774         the source be a subtype if it is an integer type.
1775         (builtin_decls): New global, vector of available builtin functions.
1776         (gnat_pushdecl): Add global builtin function declaration nodes to the
1777         builtin_decls list.
1778         (gnat_install_builtins): Adjust comments.
1779         (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
1780         calling gnat_pushdecl, so that it knows when it handed a builtin
1781         function declaration node.
1782         (builtin_decl_for): Search the builtin_decls list.
1783
1784 2007-04-06  Eric Botcazou <botcazou@adacore.com>
1785
1786         * s-stchop-vxworks.adb: 
1787         (Stack_Check): Raise Storage_Error if the argument has wrapped around.
1788
1789 2007-04-06  Robert Dewar  <dewar@adacore.com>
1790             Arnaud Charlet  <charlet@adacore.com>
1791
1792         * a-diroro.ads: Inserted the pragma Unimplemented_Unit
1793
1794         * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
1795         of files
1796         Add mention of -Sev (set initialize_scalars option from environment
1797         variable at run time) in gnatbind usage message.
1798
1799         * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
1800
1801         * fname-uf.ads: Minor comment fix
1802
1803         * osint.ads: Change pragma Elaborate to Elaborate_All
1804
1805         * par-load.adb: Add documentation.
1806
1807         * sem_cat.ads, sem_cat.adb: Minor code reorganization
1808
1809         * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
1810
1811         * s-secsta.ads: Extra comments
1812
1813         * s-soflin.ads: Minor comment fixes
1814
1815         * s-stratt.ads (Block_Stream_Ops_OK): Removed.
1816
1817         * s-wchcon.ads: Minor comment addition
1818
1819         * treepr.adb: Minor change in message
1820         (Print_Name,Print_Node): Make these debug printouts more robust: print
1821         "no such..." instead of crashing on bad input.
1822
1823 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
1824
1825         * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
1826         instead of gnat_signed_or_unsigned_type.
1827         * utils.c (gnat_signed_or_unsigned_type): Remove.
1828         * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
1829         * gigi.h (gnat_signed_or_unsigned_type): Remove
1830
1831 2007-03-09  Roger Sayle  <roger@eyesopen.com>
1832
1833         * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
1834         fold with the result of buildN.
1835         * decl.c (gnat_to_gnu_entity): Likewise.
1836         * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
1837         * utils.c (finish_record_type, merge_sizes, max_size, convert):
1838         Likewise.
1839         * utils2.c (gnat_truthvalue_conversion, compare_arrays,
1840         nonbinary_modular_operation, build_binary_op, build_unary_op,
1841         build_cond_expr): Likewise.
1842
1843         * utils.c (convert): Use fold_build1 when casting values to void.
1844         * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
1845         fold_convert instead of convert when appropriate.
1846
1847 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
1848
1849         * Make-lang.in: Add install-pdf target as copied from
1850         automake v1.10 rules.
1851
1852 2007-02-28  Andreas Schwab  <schwab@suse.de>
1853
1854         * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
1855         $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
1856         (doc/gnat-style.info): Likewise.
1857
1858 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
1859
1860         * gnat-style.texi: Standardize title page.
1861         * gnat_rm.texi: Likewise.
1862         * gnat_ugn.texi: Likewise.
1863
1864 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
1865
1866         * decl.c (annotate_value): Adjust for refactoring of tree_map
1867         hierarchy.
1868
1869 2007-02-24  Mark Mitchell  <mark@codesourcery.com>
1870
1871         * decl.c (annotate_value): Adjust for refactoring of tree_map
1872         hierarchy.
1873
1874 2007-02-21  Ed Schonberg  <schonberg@adacore.com>
1875
1876         PR ada/18819
1877         * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
1878         untagged derived type, add hidden components to keep discriminant
1879         layout consistent, when a given discriminant of the derived type
1880         constraints several discriminants of the parent type.
1881
1882 2007-02-16  Eric Botcazou  <ebotcazou@adacore.com>
1883             Sandra Loosemore  <sandra@codesourcery.com>
1884
1885         * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
1886         build the call expression.
1887         (gnat_stabilize_reference_1): Handle tcc_vl_exp.
1888         * utils.c (max_size) <tcc_exceptional>: Delete.
1889         <tcc_vl_exp>: New case.
1890         <tcc_expression>: Delete CALL_EXPR subcase.
1891         (build_global_cdtor): Use build_call_nary instead of build3.
1892         * utils2.c (build_call_1_expr): Likewise.
1893         (build_call_2_expr): Likewise.
1894         (build_call_0_expr): Likewise.
1895         (build_call_alloc_dealloc): Likewise.
1896
1897 2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
1898
1899         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
1900         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
1901         and _Unwind_SWord with _sleb128_t.
1902
1903 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
1904
1905         * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
1906         * decl.c: Include gt-ada-decl.h.
1907         (annotate_value_cache): New.
1908         (annotate_value): Use it instead of TREE_COMPLEXITY.
1909
1910 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
1911
1912         * misc.c, utils2.c: Fix comment typos.
1913
1914 2007-01-24  Roger Sayle  <roger@eyesopen.com>
1915
1916         * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
1917         TREE_CONSTANT_OVERFLOW.
1918         (allocatable_size_p, annotate_value): Likewise.
1919         * trans.c (gnat_to_gnu): Likewise.
1920         * utils.c (unchecked_convert): Likewise.
1921         * utils2.c (build_simple_component_ref): Likewise.
1922
1923 2007-01-23  Richard Guenther  <rguenther@suse.de>
1924
1925         PR bootstrap/30541
1926         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
1927         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
1928         (gnatboot3): Likewise.
1929         (GNATBIND): Do not define.
1930         * Makefile.in (GNATBIND): Do not define.
1931
1932 2007-01-08  Richard Guenther  <rguenther@suse.de>
1933
1934         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
1935         * trans.c (gnat_to_gnu): Likewise.
1936
1937 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
1938
1939         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
1940         * adaint.c: Likewise.
1941
1942 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
1943
1944         Merge from gimple-tuples-branch:
1945         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
1946
1947         * ada-tree.h (lang_tree_node): Handle gimple tuples.
1948         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
1949         GIMPLE_MODIFY_STMT.
1950
1951 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
1952
1953         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
1954         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
1955         Fix typos.
1956
1957 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
1958
1959         PR ada/27936
1960         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
1961         if the initializer takes into account the padding.
1962
1963 2006-11-11  Richard Guenther  <rguenther@suse.de>
1964
1965         * trans.c (maybe_stabilize_reference): Remove handling of
1966         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
1967
1968 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
1969
1970         PR ada/29707
1971         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
1972         (To_Target_Priority): New function.
1973
1974 2006-10-31  Robert Dewar  <dewar@adacore.com>
1975
1976         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
1977         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
1978         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
1979         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
1980         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
1981         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
1982         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
1983         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
1984         a-szbzha.adb: Minor reformatting. Fix header.
1985
1986         * a-numaux-x86.adb: Add parentheses for use of unary minus
1987         * a-ngcefu.adb: Supply missing parentheses for unary minus
1988         * a-ngcoty.adb: Add parens for use of unary minus
1989         * a-ngelfu.adb: Add missing parens for unary minus
1990         * a-tifiio.adb: Add parentheses for uses of unary minus
1991
1992 2006-10-31  Robert Dewar  <dewar@adacore.com>
1993             Bob Duff  <duff@adacore.com>
1994             Ed Schonberg  <schonberg@adacore.com>
1995
1996         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
1997         with multiplying operator.
1998         (Expected_Type_Is_Any_Real): New function to determine from the Parent
1999         pointer whether the context expects "any real type".
2000         (Resolve_Arithmetic_Op): Do not give an error on calls to the
2001         universal_fixed "*" and "/" operators when they are used in a context
2002         that expects any real type. Also set the type of the node to
2003         Universal_Real in this case, because downstream processing requires it
2004         (mainly static expression evaluation).
2005         Reword some continuation messages
2006         Add some \\ sequences to continuation messages
2007         (Resolve_Call): Refine infinite recursion case. The test has been
2008         sharpened to eliminate some false positives.
2009         Check for Current_Task usage now includes entry barrier, and is now a
2010         warning, not an error.
2011         (Resolve): If the call is ambiguous, indicate whether an interpretation
2012         is an inherited operation.
2013         (Check_Aggr): When resolving aggregates, skip associations with a box,
2014         which are priori correct, and will be replaced by an actual default
2015         expression in the course of expansion.
2016         (Resolve_Type_Conversion): Add missing support for conversion from
2017         a class-wide interface to a tagged type. Minor code cleanup.
2018         (Valid_Tagged_Converion): Add support for abstact interface type
2019         conversions.
2020         (Resolve_Selected_Component): Call Generate_Reference here rather than
2021         during analysis, and use May_Be_Lvalue to distinguish read/write.
2022         (Valid_Array_Conversion): New procedure, abstracted from
2023         Valid_Conversion, to incorporate accessibility checks for arrays of
2024         anonymous access types.
2025         (Valid_Conversion): For a conversion to a numeric type occurring in an
2026         instance or inlined body, no need to check that the operand type is
2027         numeric, since this has been checked during analysis of the template.
2028         Remove legacy test for scope name Unchecked_Conversion.
2029
2030         * sem_res.ads: Minor reformatting
2031
2032         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
2033         (PE_Current_Task_In_Entry_Body): New exception code
2034         (SE_Restriction_Violation): Removed, not used
2035
2036         * a-except.ads:  Update comments.
2037
2038         * types.h, types.ads: Add definition for Validity_Check
2039         (PE_Current_Task_In_Entry_Body): New exception code
2040         (SE_Restriction_Violation): Removed, not used
2041
2042 2006-10-31  Thomas Quinot  <quinot@adacore.com>
2043
2044         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
2045         error status.
2046
2047 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
2048             Jose Ruiz  <ruiz@adacore.com>
2049
2050         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
2051         part of Ada.Calendar: all subprogram raise Unimplemented.
2052         (Split_W_Offset): Temp function body, raising Unimplemented
2053
2054         * a-calend.ads, a-calend-vms.ads: 
2055         Add imported variable Invalid_TZ_Offset used to designate targets unable
2056         to support time zones.
2057         (Unimplemented): Temporary function raised by the body of new
2058         subprograms below.
2059         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
2060         unit provides handling of leap seconds and is used by the new Ada 2005
2061         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
2062         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
2063         version returns an extra value which is the offset to UTC.
2064
2065         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
2066         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
2067         (Split_W_Offset): New function body.
2068         (Time_Of): When a date is close to UNIX epoch, compute the time for
2069         that date plus one day (that amount is later substracted after
2070         executing mktime) so there are no problems with time zone adjustments.
2071
2072         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
2073
2074         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
2075         a-catizo.ads, a-catizo.adb: New files.
2076
2077         * impunit.adb: Add new Ada 2005 entries
2078
2079         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
2080         Rename all occurences of "__gnat_localtime_r" to
2081         "__gnat_localtime_tzoff".
2082         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
2083         zone data and calculate the GMT offset.
2084         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
2085         Use the field "tm_gmtoff" to extract the GMT offset.
2086         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
2087         the external variable "timezone" to calculate the GMT offset.
2088
2089 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
2090             Jose Ruiz  <ruiz@adacore.com>
2091
2092         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb, 
2093         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads, 
2094         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
2095         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
2096         System.Any_Priority to a POSIX priority on the target.
2097
2098         * system-linux-ia64.ads: 
2099         Extend range of Priority types on Linux to use the whole range made
2100         available by the system.
2101
2102         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
2103         function maps from System.Any_Priority to a POSIX priority on the
2104         target.
2105         (PTHREAD_PRIO_PROTECT): Set real value.
2106         (PTHREAD_PRIO_INHERIT): Now a function.
2107         (SIGCPUFAIL): New signal.
2108         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
2109         are documented as reserved by the OS.
2110
2111         * system-aix.ads: Use the full range of priorities provided by the
2112         system on AIX.
2113
2114         * s-taprop-posix.adb: Call new function To_Target_Priority.
2115         (Set_Priority): Take into account Task_Dispatching_Policy and
2116         Priority_Specific_Dispatching pragmas when determining if Round Robin
2117         must be used for scheduling the task.
2118
2119         * system-linux-x86_64.ads, system-linux-x86.ads, 
2120         system-linux-ppc.ads: Extend range of Priority types on Linux to use
2121         the whole range made available by the system.
2122
2123         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb, 
2124         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb, 
2125         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
2126         when deallocating the TCB in order to avoid potential references to
2127         deallocated data.
2128         (Set_Priority): Take into account Task_Dispatching_Policy and
2129         Priority_Specific_Dispatching pragmas when determining if Round Robin
2130         or FIFO within priorities must be used for scheduling the task.
2131
2132         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
2133         the Thread field (to be used internally by the run-time system) and the
2134         kernel-level task id in the LWP field (to be used by the debugger).
2135         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
2136         instance, and propagate the current task options to the spawned task.
2137         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
2138         (Initialize): Set Round Robin dispatching when the corresponding pragma
2139         is in effect.
2140
2141 2006-10-31  Robert Dewar  <dewar@adacore.com>
2142
2143         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
2144         system-linux-hppa.ads, system-hpux-ia64.ads, 
2145         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads, 
2146         system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
2147         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
2148         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads, 
2149         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
2150         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
2151         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
2152         Default_Bit_Order) to kill constant condition warnings for references
2153         to this switch.
2154
2155 2006-10-31  Vincent Celier  <celier@adacore.com>
2156             Eric Botcazou  <ebotcazou@adacore.com>
2157
2158         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
2159         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
2160         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
2161         Ext_To, when building the library file name
2162
2163         * mlib-tgt-vxworks.adb: ditto.
2164         (Get_Target_Suffix): Add support for x86 targets.
2165
2166         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
2167
2168         * mlib-tgt-darwin.adb: 
2169         Use Append_To, instead of Ext_To, when building the library file name
2170         (Flat_Namespace): New global variable.
2171         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
2172         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
2173         (Link_Shared_Libgcc): Delete.
2174         (Build_Dynamic_Library): Adjust for above changes.
2175         Use Opt package.
2176         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
2177
2178 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
2179
2180         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
2181         (Initialize): Add type conversions required by above change.
2182
2183 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
2184
2185         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
2186         (getpid): New body for this function that uses the underlying taskIdSelf
2187         function for VxWorks 5 and VxWorks 6 in kernel mode.
2188         (unsigned_int): New type, modular to allow logical bit operations.
2189         (taskOptionsGet): New imported function.
2190
2191         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
2192         field to be compliant with the type used by the corresponding operating
2193         system primitive.
2194
2195 2006-10-31  Pascal Obry  <obry@adacore.com>
2196             Eric Botcazou  <ebotcazou@adacore.com>
2197             Vincent Celier  <celier@adacore.com>
2198
2199         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
2200         ASCII version of the registry API. This is needed as the GNAT runtime
2201         is now UNICODE by default.
2202         Include version.h.
2203         (get_gcc_version): Do not hardcode the return value.
2204         (__gnat_file_time_name): On Windows properly set the default returned
2205         value to -1 which corresponds to Invalid_Time.
2206         (__gnat_fopen): New routine. A simple wrapper on all plateforms
2207          except on Windows where it does conversion for unicode support.
2208         (__gnat_freopen): Idem.
2209         (__gnat_locate_exec_on_path): If environment variable PATH does not
2210         exist, return a NULL pointer
2211
2212         * adaint.h: (__gnat_fopen): Declare.
2213         (__gnat_freopen): Likewise.
2214
2215         * mingw32.h (_tfreopen): Define this macro here for older MingW
2216         version.
2217         Activate the unicode support on platforms using a MingW runtime
2218         version 3.9 or newer.
2219
2220         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
2221         This is needed for proper unicode support on Windows.
2222         (freopen): Idem.
2223
2224 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
2225             Nicolas Setton  <setton@adacore.com>
2226             Olivier Hainque  <hainque@adacore.com>
2227             Gary Dismukes  <dismukes@adacore.com>
2228
2229         * gigi.h: (tree_code_for_record_type): Declare.
2230         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
2231         (get_global_renaming_pointers): Rename to
2232         invalidate_global_renaming_pointers.
2233         (static_ctors): Delete.
2234         (static_dtors): Likewise.
2235         (gnat_write_global_declarations): Declare.
2236         (create_var_decl): Adjust descriptive comment to indicate that the
2237         subprogram may return a CONST_DECL node.
2238         (create_true_var_decl): Declare new function, similar to
2239         create_var_decl but forcing the creation of a VAR_DECL node.
2240         (get_global_renaming_pointers): Declare.
2241         (add_global_renaming_pointer): Likewise.
2242
2243         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
2244
2245         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
2246         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
2247         processing.
2248         (gnat_to_gnu_entity): Remove From_With_Type from computation for
2249         imported_p.
2250         <E_Access_Type>: Use the Non_Limited_View as the full view of the
2251         designated type if the pointer comes from a limited_with clause.  Make
2252         incomplete designated type if it is in the main unit and has a freeze
2253         node.
2254         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
2255         Underlying_Full_View similarly.  Return earlier if the full view already
2256         has an associated tree.
2257         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
2258         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
2259         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
2260         reference type built for objects with an address clause.
2261         Use create_true_var_decl with const_flag set for
2262         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
2263         TREE_READONLY set.
2264         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
2265         for Character and Wide_Character types. This info is read by the
2266         dwarf-2 writer, and is needed to be able to use the command "ptype
2267         character" in the debugger.
2268         (gnat_to_gnu_entity): When generating a type representing
2269         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
2270         so that debug writers can distinguish it from ordinary integers.
2271         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
2272         addition to TREE_READONLY to assert the constantness of variables for
2273         elaboration purposes.
2274         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
2275         parameters to call new Einfo function First_Formal_With_Extras.
2276         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
2277         protected type with its corresponding discriminant, to obtain a usable
2278         declaration
2279         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
2280         for a multiple elaboration of the "equivalent" type.
2281         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
2282         into record_global_renaming_pointer.
2283         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
2284         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
2285         <E_Array_Subtype>: Likewise.
2286         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
2287         incomplete subtypes and incomplete subtypes of incomplete types visible
2288         through a limited with clause.
2289         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
2290         the base index type for the maximum size of the array only if they are
2291         constant.
2292         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
2293         expression into a SAVE_EXPR if stabilization failed.
2294
2295         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
2296         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
2297         by lower level compilation passes.
2298         (gnat_genericize): New function, lowering a function body to GENERIC.
2299         Turn the type of RESULT_DECL into a real reference type if the decl
2300         has been marked DECL_BY_REFERENCE, and adjust references to the latter
2301         accordingly.
2302         (gnat_genericize_r): New function. Tree walking callback for
2303         gnat_genericize.
2304         (convert_from_reference, is_byref_result): New functions. Helpers for
2305         gnat_genericize_r.
2306         (create_type_decl): Call gnat_pushdecl before calling
2307         rest_of_decl_compilation, to make sure that field TYPE_NAME of
2308         type_decl is properly set before calling the debug information writers.
2309         (write_record_type_debug_info): The heuristics which compute the
2310         alignment of a field in a variant record might not be accurate. Add a
2311         safety test to make sure no alignment is set to a smaller value than
2312         the alignment of the field type.
2313         (make_dummy_type): Use the Non_Limited_View as the underlying type if
2314         the type comes from a limited_with clause. Do not loop on the full view.
2315         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
2316         (dummy_node_table): New global variable, moved from decl.c.
2317         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
2318         (save_gnu_tree): Use above macros.
2319         (get_gnu_tree): Likewise.
2320         (present_gnu_tree): Likewise.
2321         (init_dummy_type): New function, moved from decl.c. Use above macros.
2322         (make_dummy_type): Likewise.
2323         (tree_code_for_record_type): New function extracted from make_dummy_type
2324         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
2325         (static_ctors): Change it to a vector, make static.
2326         (static_dtors): Likewise.
2327         (end_subprog_body): Adjust for above change.
2328         (build_global_cdtor): Moved from trans.c.
2329         (gnat_write_global_declarations): Emit global constructor and
2330         destructor, and call cgraph_optimize before emitting debug info for
2331         global declarations.
2332         (global_decls): New global variable.
2333         (gnat_pushdecl): Store the global declarations in global_decls, for
2334         later use.
2335         (gnat_write_global_declarations): Emit debug information for global
2336          declarations.
2337         (create_var_decl_1): Former create_var_decl, with an extra argument to
2338          state whether the creation of a CONST_DECL is allowed.
2339         (create_var_decl): Behavior unchanged. Now a wrapper around
2340         create_var_decl_1 allowing CONST_DECL creation.
2341         (create_true_var_decl): New function, similar to create_var_decl but
2342         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
2343         (create_field_decl): Do not always mark the field as addressable
2344         if its type is an aggregate.
2345         (global_renaming_pointers): New static variable.
2346         (add_global_renaming_pointer): New function.
2347         (get_global_renaming_pointers): Likewise.
2348
2349         * misc.c (gnat_dwarf_name): New function.
2350         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
2351         (gnat_post_options): Add comment about structural alias analysis.
2352         (gnat_parse_file): Do not call cgraph_optimize here.
2353         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
2354
2355         * trans.c (process_freeze_entity): Don't abort if we already have a
2356         non dummy GCC tree for a Concurrent_Record_Type, as it might
2357         legitimately have been elaborated while processing the associated
2358         Concurrent_Type prior to this explicit freeze node.
2359         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
2360         exception handler volatile if it is of variable size.
2361         (process_type): Remove bypass for types coming from a limited_with
2362         clause.
2363         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
2364         actual, convert the corresponding gnu_actual to the real destination
2365         type when necessary.
2366         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
2367         originally TREE_READONLY but whose elaboration cannot be performed
2368         statically.
2369         Part of fix for F504-021.
2370         (tree_transform, subprogram cases): Change loops on formal parameters to
2371         call new Einfo function First_Formal_With_Extras.
2372         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
2373         stemming from type conversion for the lhs.
2374         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
2375         number of bits per unit for components of records.
2376         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
2377         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
2378         with At_End_Proc after the SJLJ EH cleanup.
2379         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
2380         compilation unit.
2381         (elaborate_all_entities): Do not retest type_annotate_only.
2382         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
2383         result type of an abstract subprogram, which may be an itype associated
2384         with an anonymous access result (related to AI-318-02).
2385         (build_global_cdtor): Move to utils.c.
2386         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
2387         this choice is not a null tree nor an integer constant.
2388         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
2389         on the body of elaboration routines instead of mark_unvisited.
2390         (add_stmt): Do not mark the tree.
2391         (add_decl_expr): Tweak comment.
2392         (mark_unvisited): Delete.
2393         (unshare_save_expr): New static function.
2394         (call_to_gnu): Issue an error when making a temporary around a
2395         procedure call because of non-addressable actual parameter if the
2396         type of the formal is by_reference.
2397         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
2398         after building the elaboration routine.
2399
2400 2006-10-31  Bob Duff  <duff@adacore.com>
2401
2402         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
2403         as finalization-started, so we can raise Program_Error on 'new'.
2404
2405         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
2406         collection has already started.
2407
2408         * s-finimp.ads (Collection_Finalization_Started): Added new special
2409         flag value for indicating that a collection's finalization has started.
2410
2411         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
2412         create a task whose master has already waited for dependent tasks.
2413
2414 2006-10-31  Robert Dewar  <dewar@adacore.com>
2415
2416         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
2417
2418         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads, 
2419         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads, 
2420         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads, 
2421         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads, 
2422         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads, 
2423         a-except-2005.ads: Add pragma Preelaborable_Warning
2424
2425 2006-10-31  Robert Dewar  <dewar@adacore.com>
2426             Jose Ruiz  <ruiz@adacore.com>
2427
2428         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
2429
2430         * ali.adb (Get_Name): Properly handle scanning of wide character names
2431         encoded with brackets notation.
2432         (Known_ALI_Lines): Add S lines to this list.
2433         (Scan_ALI): Acquire S (priority specific dispatching) lines.
2434         New flag Elaborate_All_Desirable in unit table
2435
2436         * ali.ads (Priority_Specific_Dispatching): Add this range of
2437         identifiers to be used for Priority_Specific_Dispatching table entries.
2438         (ALIs_Record): Add First_Specific_Dispatching and
2439         Last_Specific_Dispatching that point to the first and last entries
2440         respectively in the priority specific dispatching table for this unit.
2441         (Specific_Dispatching): Add this table for storing each S (priority
2442         specific dispatching) line encountered in the input ALI file.
2443         New flag Elaborate_All_Desirable in unit table
2444
2445         * bcheck.adb: (Check_Configuration_Consistency): Add call to
2446         Check_Consistent_Dispatching_Policy.
2447         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
2448         verifying that the use of Priority_Specific_Dispatching,
2449         Task_Dispatching_Policy, and Locking_Policy is consistent across the
2450         partition.
2451
2452         * bindgen.adb: (Public_Version_Warning): function removed.
2453         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
2454         required information from ALI files in order to initialize the table
2455         containing the specific dispatching policy.
2456         (Gen_Adainit_Ada): Generate the variables required for priority specific
2457         dispatching entries (__gl_priority_specific_dispatching and
2458         __gl_num_specific_dispatching).
2459         (Gen_Adainit_C): Generate the variables required for priority specific
2460         dispatching entries (__gl_priority_specific_dispatching and
2461         __gl_num_specific_dispatching).
2462         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
2463         pragma entries.
2464         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
2465         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
2466         (Tab_To): Removed.
2467         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
2468         a call to gnat_set_globals.
2469         Generate a string containing settings from
2470         Priority_Specific_Dispatching pragma entries.
2471         (Gen_Object_Files_Options): Do not include the runtime libraries when
2472         pragma No_Run_Time is specified.
2473
2474         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
2475         consistency with s-intman-posix.adb.
2476         (__gnat_error_handler, case FreeBSD): Account for the fact that the
2477         handler is installed with SA_SIGINFO.
2478         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
2479         FreeBSD ZCX support, copied from Linux version.
2480         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
2481         sigfillset, and sigemptyset so the routines defined by MaRTE.
2482         (__gl_priority_specific_dispatching): Add this variable that stores the
2483         string containing priority specific dispatching policies in the
2484         partition.
2485         (__gl_num_specific_dispatching): Add this variable that indicates the
2486         highest priority for which a priority specific dispatching pragma
2487         applies.
2488         (__gnat_get_specific_dispatching): Add this routine that returns the
2489         priority specific dispatching policy, as set by a
2490         Priority_Specific_Dispatching pragma appearing anywhere in the current
2491         partition. The input argument is the priority number, and the result
2492         is the upper case first character of the policy name.
2493         (__gnat_set_globals): Now a dummy function.
2494         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
2495         mechargs instead of sigargs, as the latter can be retrieved from the
2496         former and sigargs is not what we want on ia64.
2497         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
2498         mechargs argument.
2499         (__gnat_adjust_context_for_raise, ia64-vms): New function.
2500         (tasking_error): Remove unused symbol.
2501         (_abort_signal): Move this symbol to the IRIX specific part since this
2502         is the only target that uses this definition.
2503         (Check_Abort_Status): Move this symbol to the IRIX specific part since
2504         this is the only target that uses this definition.
2505         (Lock_Task): Remove unused symbol.
2506         (Unlock_Task): Remove unused symbol.
2507
2508         * lib-writ.adb (Write_ALI): Output new S lines for
2509         Priority_Specific_Dispatching pragmas.
2510         Implement new flag BD for elaborate body desirable
2511
2512         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
2513         (Specific_Dispatching): Add this table for storing the entries
2514         corresponding to Priority_Specific_Dispatching pragmas.
2515         Document new BD flag for elaborate body desirable
2516
2517         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
2518         of known pragmas.
2519
2520 2006-10-31  Javier Miranda  <miranda@adacore.com>
2521
2522         * a-tags.ads, a-tags.adb: 
2523         (Predefined_DT): New function that improves readability of the code.
2524         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
2525         Inherit_DT): Use the new function Predefined_DT to improve code
2526         readability.
2527         (Register_Interface_Tag): Update assertion.
2528         (Set_Interface_Table): Update assertion.
2529         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
2530         determining progenitor interfaces in Tags.
2531         (Inherit_CPP_DT): New subprogram.
2532
2533         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
2534         analysis of the thunk code.
2535         (Expand_Interface_Conversion): Handle run-time conversion of
2536         access to class wide types.
2537         (Expand_Dispatching_Call): When generating the profile for the
2538         subprogram itype for a dispatching operation, properly terminate the
2539         formal parameters chaind list (set the Next_Entity of the last formal
2540         to Empty).
2541         (Collect_All_Interfaces): Removed. This routine has been moved to
2542         sem_util and renamed as Collect_All_Abstract_Interfaces.
2543         (Set_All_DT_Position): Hidden entities associated with abstract
2544         interface primitives are not taken into account in the check for
2545         3.9.3(10); this check is done with the aliased entity.
2546         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
2547         interfacing with CPP by default.
2548         (Expand_Interface_Conversion): Add missing support for static conversion
2549         from an interface to a tagged type.
2550         (Collect_All_Interfaces): Add new out formal containing the list of
2551         abstract interface types to cleanup the subprogram Make_DT.
2552         (Make_DT): Update the code to generate the table of interfaces in case
2553         of abstract interface types.
2554         (Is_Predefined_Dispatching_Alias): New function that returns true if
2555         a primitive is not a predefined dispatching primitive but it is an
2556         alias of a predefined dispatching primitive.
2557         (Make_DT): If the ancestor of the type is a CPP_Class and we are
2558         compiling under full ABI compatibility mode we avoid the generation of
2559         calls to run-time services that fill the dispatch tables because under
2560         this mode we currently inherit the dispatch tables in the IP subprogram.
2561         (Write_DT): Emit an "is null" indication for a null procedure primitive.
2562         (Expand_Interface_Conversion): Use an address as the type of the formal
2563         of the internally built function that handles the case in which the
2564         target type is an access type.
2565
2566 2006-10-31  Robert Dewar  <dewar@adacore.com>
2567
2568         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
2569
2570 2006-10-31  Robert Dewar  <dewar@adacore.com>
2571
2572         * bindusg.ads, bindusg.adb:
2573         Change to package and rename procedure as Display, which
2574         now ensures that it only outputs usage information once.
2575
2576 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
2577
2578         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
2579         using RTPs.
2580
2581         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
2582         when using RTPs.
2583
2584 2006-10-31  Robert Dewar  <dewar@adacore.com>
2585             Ed Schonberg  <schonberg@adacore.com>
2586
2587         * treepr.adb: Use new subtype N_Membership_Test
2588
2589         * checks.ads, checks.adb: Add definition for Validity_Check
2590         (Range_Or_Validity_Checks_Suppressed): New function
2591         (Ensure_Valid): Test Validity_Check suppressed
2592         (Insert_Valid_Check): Test Validity_Check suppressed
2593         (Insert_Valid_Check): Preserve Do_Range_Check flag
2594         (Validity_Check_Range): New procedure
2595         (Expr_Known_Valid): Result of membership test is always valid
2596         (Selected_Range_Checks): Range checks cannot be applied to discriminants
2597         by themselves. Disabling those checks must also be done for task types,
2598         where discriminants may be used for the bounds of entry families.
2599         (Apply_Address_Clause_Check): Remove side-effects if address expression
2600         is non-static and is not the name of a declared constant.
2601         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
2602         Code cleanup and new error messages.
2603         (Enable_Range_Check): Test for some cases of suppressed checks
2604         (Generate_Index_Checks): Suppress index checks if index checks are
2605         suppressed for array object or array type.
2606         (Apply_Selected_Length_Checks): Give warning for compile-time detected
2607         length check failure, even if checks are off.
2608         (Ensure_Valid): Do not generate a check on an indexed component whose
2609         prefix is a packed boolean array.
2610         * checks.adb: (Alignment_Checks_Suppressed): New function
2611         (Apply_Address_Clause_Check): New procedure, this is a completely
2612         rewritten replacement for Apply_Alignment_Check
2613         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
2614         we request a discriminal value only in case of discriminants.
2615         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
2616         assignments where the target subtype is unconstrained and the target
2617         object is a parameter or dereference (other aliased cases are known
2618         to be unconstrained).
2619
2620 2006-10-31  Robert Dewar  <dewar@adacore.com>
2621
2622         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
2623         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
2624         vms_conv.adb: Fix bad table increment values (much too small)
2625
2626         * table.adb (Realloc): Make sure we get at least some new elements
2627         Defends against silly small values for table increment
2628
2629 2006-10-31  Robert Dewar  <dewar@adacore.com>
2630             Ed Schonberg  <schonberg@adacore.com>
2631             Bob Duff  <duff@adacore.com>
2632
2633         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
2634         entities. Move other fields around to make this possible
2635         (Is_Derived_Type): Add missing call to Is_Type.
2636         (Extra_Formals): New function for subprograms, entries, subprogram
2637         types.
2638         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
2639         (First_Formal_With_Extras): New function for subprogs, entries, subp
2640         types.
2641         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
2642         Add node information for E_Return_Statement.
2643         (Elaborate_Body_Desirable): New flag
2644         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
2645         to be Is_Inherently_Limited_Type, because return-by-reference has
2646         no meaning in Ada 2005.
2647         (E_Return_Statement): New entity kind.
2648         (Return_Applies_To): Field of E_Return_Statement.
2649         (Is_Return_Object): New flag in object entities.
2650         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
2651         (Must_Have_Preelab_Init): New flag
2652         (Known_To_Have_Preelab_Init): New flag
2653         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
2654         (Is_Visible_Formal): New flag on entities in formal packages.
2655         (Low_Bound_Known): New flag
2656         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
2657         Incomplete_Kind.
2658         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
2659         output when Id is an incomplete subtype.
2660
2661 2006-10-31  Robert Dewar  <dewar@adacore.com>
2662
2663         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
2664         Avoid abbreviation Creat
2665         (Finalize): List all sources in extended mail source if -gnatl
2666         switch is active.
2667         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
2668         (Finalize): Implement new -gnatl=xxx switch to output listing to file
2669         (Set_Specific_Warning_On): New procedure
2670         (Set_Specific_Warning_Off): New procedure
2671         Add implementation of new insertion \\
2672         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
2673         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
2674         types.
2675         (Error_Msg_Internal): Make sure that we set Last_Killed to
2676         True when a message from another package is suppressed.
2677         Implement insertion character ~ (insert string)
2678         (First_Node): Minor adjustments to get better placement.
2679
2680         * frontend.adb: 
2681         Implement new -gnatl=xxx switch to output listing to file
2682
2683         * gnat1drv.adb: 
2684         Implement new -gnatl=xxx switch to output listing to file
2685
2686         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
2687         (Commands_To_Stdout): New flag
2688         Implement new -gnatl=xxx switch to output listing to file
2689         New switch Dump_Source_Text
2690         (Warn_On_Deleted_Code): New warning flag for -gnatwt
2691         Define Error_Msg_Line_Length
2692         (Warn_On_Assumed_Low_Bound): New switch
2693
2694         * osint.ads, osint.adb
2695         (Normalize_Directory_Name): Fix bug.
2696         Implement new -gnatl=xxx switch to output listing to file
2697         (Concat): Removed, replaced by real concatenation
2698         Make use of concatenation now allowed in compiler
2699         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
2700         we find the 'lib' or 'bin' directory even when the tool has been
2701         invoked with a relative path.
2702         (Executable_Name): New function taking string parameters.
2703
2704         * osint-c.ads, osint-c.adb: 
2705         Implement new -gnatl=xxx switch to output listing to file
2706
2707         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
2708
2709         * switch-c.adb: 
2710         Implement new -gnatl=xxx switch to output listing to file
2711         Recognize new -gnatL switch
2712         (no longer keep in old warning about old style usage)
2713         Use concatenation to simplify code
2714         Recognize -gnatjnn switch
2715         (Scan_Front_End_Switches): Clean up handling of -gnatW
2716         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
2717
2718 2006-10-31  Robert Dewar  <dewar@adacore.com>
2719
2720         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
2721         (Set_Specific_Warning_Off): New procedure
2722         (Warning_Specifically_Suppressed): New function
2723         (Validate_Specific_Warnings): New procedure
2724         (Output_Msg_Text): Complete rewrite to support -gnatjnn
2725
2726         * err_vars.ads: Implement insertion character ~ (insert string)
2727
2728 2006-10-31  Bob Duff  <duff@adacore.com>
2729             Ed Schonberg  <schonberg@adacore.com>
2730
2731         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
2732         the parent part is a build-in-place function call, generate assignments.
2733         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
2734         are build-in-place function calls.
2735         (Replace_Self_Reference): New subsidiary of
2736         Make_OK_Assignment_Statement, to replace an access attribute that is a
2737         self-reference into an access to the appropriate component of the
2738         target object. Generalizes previous mechanism to handle self-references
2739         nested at any level.
2740         (Is_Self_Referential_Init): Remove, not needed.
2741         (Is_Self_Referential_Init): New predicate to simplify handling of self
2742         referential components in record aggregates.
2743         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
2744         check for presence of entity before checking for self-reference.
2745         (Has_Default_Init_Comps): Return True if a component association is a
2746         self-reference to the enclosing type, which can only come from a
2747         default initialization.
2748         (Make_OK_Assignment_Statement): If the expression is of the form
2749         Typ'Acc, where Acc is an access attribute, the expression comes from a
2750         default initialized self-referential component.
2751         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
2752         that has been derived from several abstract interfaces we must also
2753         initialize the tags of the secondary dispatch tables.
2754
2755 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
2756             Thomas Quinot  <quinot@adacore.com>
2757             Javier Miranda  <miranda@adacore.com>
2758             Robert Dewar  <dewar@adacore.com>
2759
2760         * exp_attr.adb: 
2761         (Expand_Access_To_Protected_Op): If the context indicates that an access
2762         to a local operation may be transfered outside of the object, create an
2763         access to the wrapper operation that must be used in an external call.
2764         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
2765         target, pass the Valid attribute applied to a floating-point prefix on
2766         to the back end without expansion.
2767         (Storage_Size): Use the new run-time function Storage_Size to retrieve
2768         the allocated storage when it is specified by a per-object expression.
2769         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
2770         Nothing to do here, the attribute has been rewritten during semantic
2771         analysis.
2772         (Expand_Attribute_Reference): Handle expansion of the new Priority
2773         attribute
2774         (Find_Fat_Info): Handle case of universal real
2775         (Expand_Access_To_Protected_Op): Fix use of access to protected
2776         subprogram from inside the body of a protected entry.
2777         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
2778         'Access and 'Unrestricted_Access, to transform the attribute reference
2779         into a fat pointer.
2780         (Is_Constrained_Aliased_View): New predicate to help determine whether a
2781         subcomponent's enclosing variable is aliased with a constrained subtype.
2782         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
2783         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
2784         an aliased prefix must be known to be constrained in order to use True
2785         for the attribute value, and now it's possible for some aliased views
2786         to be unconstrained.
2787
2788 2006-10-31  Robert Dewar  <dewar@adacore.com>
2789
2790         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
2791         (Expand_Entity_Reference): Correct error of not handling subprogram
2792         formals in current_value processing.
2793
2794 2006-10-31  Javier Miranda  <miranda@adacore.com>
2795             Robert Dewar  <dewar@adacore.com>
2796             Ed Schonberg  <schonberg@adacore.com>
2797             Gary Dismukes  <dismukes@adacore.com>
2798
2799         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
2800         register in the final list objects containing class-wide interfaces;
2801         otherwise we incorrectly register the tag of the interface in the final
2802         list.
2803         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
2804         generate the wrapper if the parent primitive is abstract. This is
2805         required to report the correct error message.
2806         (Expand_N_Subtype_Indication): Do validity checks on range
2807         (Clean_Task_Names): If an initialization procedure includes a call to
2808         initialize a task (sub)component, indicate that the procedure will use
2809         the secondary stack.
2810         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
2811         compatibility for interfacing with CPP by default.
2812         (Expand_N_Object_Declaration): Only build an Adjust call when the
2813         object's type is a nonlimited controlled type.
2814         * exp_ch3.adb: Add with and use of Exp_Ch6.
2815         (Expand_N_Object_Declaration): Check for object initialization that is a
2816         call to build-in-place function and apply Make_Build_In_Place_Call_In_
2817         Object_Declaration to the call.
2818         (Freeze_Type): When the designated type of an RACW was not frozen at the
2819         point where the RACW was declared, validate the primitive operations
2820         with respect to E.2.2(14) when it finally is frozen.
2821         (Build_Initialization_Call,Expand_Record_Controller): Rename
2822         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
2823         return-by-reference has no meaning in Ada 2005.
2824         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
2825         to register tag of the immediate ancestor interfaces in the
2826         run-time structure.
2827         (Init_Secondary_Tags): Moved to the specification to allow the
2828         initialization of extension aggregates with abstract interfaces.
2829         (Build_Master_Renaming): Make public, for use by function declarations
2830         whose return type is an anonymous access type.
2831         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
2832         Insert_List_Before_And_Analyze after the generation of the specs
2833         associated with null procedures.
2834         (Expand_Tagged_Root): Update documentation in its specification.
2835         (Init_Secondary_Tags): Update documentation.
2836         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
2837         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
2838         then generate code to inherit the contents of the dispatch table
2839         directly from the ancestor.
2840         (Expand_Record_Controller): Insert controller component after tags of
2841         implemented interfaces.
2842         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
2843         create null procedure overridings when null procedures are inherited
2844         from interfaces.
2845         (Make_Null_Procedure_Specs): New procedure to generate null procedure
2846         declarations for overriding null primitives inherited from interfaces.
2847         (Is_Null_Interface_Procedure): New function in
2848         Make_Null_Procedure_Specs.
2849         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
2850         immediate ancestor of a tagged type is an abstract interface type we
2851         must generate the specification of the predefined primitives associated
2852         with controlled types (because the dispatch table of the ancestor is
2853         null and hence these entries cannot be inherited). This is required to
2854         elaborate well the dispatch table.
2855
2856 2006-10-31  Javier Miranda  <miranda@adacore.com>
2857             Ed Schonberg  <schonberg@adacore.com>
2858             Bob Duff  <duff@adacore.com>
2859             Gary Dismukes  <dismukes@adacore.com>
2860             Robert Dewar  <dewar@adacore.com>
2861
2862         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
2863         conversion.
2864         (Expand_N_In): Do validity checks on range
2865         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
2866         (Expand_N_Allocator): For "new T", if the object is constrained by
2867         discriminant defaults, allocate the right amount of memory, rather than
2868         the maximum for type T.
2869         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
2870         when the allocator is initialized by a build-in-place call, since the
2871         allocator is already rewritten as a reference to the function result,
2872         and this prevents an unwanted duplication of the function call.
2873         Add with and use of Exp_Ch6.
2874         (Expand_Allocator_Expresssion): Check for an allocator whose expression
2875         is a call to build-in-place function and apply
2876         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
2877         untagged designated types).
2878         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
2879         optimization if source or target is biased.
2880         (Expand_N_Allocator): Add comments for case of an allocator within a
2881         function that returns an anonymous access type designating tasks.
2882         (Expand_N_Allocator): apply discriminant checks for access
2883         discriminants of anonymous access types (AI-402, AI-416)
2884
2885 2006-10-31  Bob Duff  <duff@adacore.com>
2886             Robert Dewar  <dewar@adacore.com>
2887             Gary Dismukes  <dismukes@adacore.com>
2888             Ed Schonberg  <schonberg@adacore.com>
2889
2890         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
2891
2892         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
2893         (Expand_N_Assignment_Statement): Call
2894         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
2895         build-in-place function call. Currently, this can happen only for
2896         assignments that come from aggregates.
2897         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
2898         in order to alleviate the upward compatibility introduced by AI-318.
2899         (Expand_N_Extended_Return_Statement): Add support for handling the
2900         return object as a build-in-place result.
2901         (Expand_Non_Function_Return): Implement simple return statements nested
2902         within an extended return.
2903         (Enable_New_Return_Processing): Turn on the new processing of return
2904         statements.
2905         (Expand_Non_Function_Return): For a return within an extended return,
2906         don't raise Program_Error, because Sem_Ch6 now gives a warning.
2907         (Expand_N_Extended_Return_Statement): Implement AI-318
2908         (Expand_Simple_Function_Return): Ditto.
2909         (Expand_N_If_Statement): Handle new -gnatwt warning
2910         (Expand_N_Case_Statement): Handle new -gnatwt warning
2911         (Expand_N_Assignment): Handle assignment to the Priority attribute of
2912         a protected object.
2913         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
2914         validity checking of assignments to elementary record components.
2915         (Expand_N_Return_Statement): return Class Wide types on the secondary
2916         stack independantly of their controlled status since with HIE runtimes,
2917         class wide types are not potentially controlled anymore.
2918
2919         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
2920         node kind.
2921
2922         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
2923         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
2924         it expects a block, procedure, or task. The return statement will get
2925         turned into a block, and Expand_Cleanup_Actions will happen then.
2926
2927 2006-10-31  Robert Dewar  <dewar@adacore.com>
2928             Ed Schonberg  <schonberg@adacore.com>
2929             Bob Duff  <duff@adacore.com>
2930             Gary Dismukes  <dismukes@adacore.com>
2931
2932         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
2933         capability.
2934         (Expand_Inlined_Call): Tagged types are by-reference types, and
2935         therefore should be replaced by a renaming declaration in the expanded
2936         body, as is done for limited types.
2937         (Expand_Call): If this is a call to a function with dispatching access
2938         result, propagate tag from context.
2939         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
2940         CPP by default.
2941         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
2942         build-in-place when the right-hand side of an assignment is a
2943         build-in-place function call.
2944         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
2945         of the explicit dereference of the allocator to the result subtype of
2946         the build-in-place function. This is needed to satisfy type checking
2947         in cases where the caller's return object is created by an allocator for
2948         a class-wide access type and the type named in the allocator is a
2949         specific type.
2950         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
2951         conversion of the reference to the declared object to the result subtype
2952         of the build-in-place function. This is needed to satisfy type checking
2953         in cases where the declared object has a class-wide type. Also, in the
2954         class-wide case, change the type of the object entity to the specific
2955         result subtype of the function, to avoid passing a class-wide object
2956         without explicit initialization to the back end.
2957         (Register_Interface_DT_Entry): Moved outside the body of
2958         Freeze_Subprogram because this routine is now public; it is called from
2959         Check_Dispatching_Overriding to handle late overriding of abstract
2960         interface primitives.
2961         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
2962         adding an implicit access actual on a call to a build-in-place function.
2963         (Expand_Actuals): Test for an actual parameter that is a call to a
2964         build-in-place function and apply
2965         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
2966         (Is_Build_In_Place_Function): New function to determine whether an
2967         entity is a function whose calls should be handled as build-in-place.
2968         (Is_Build_In_Place_Function_Call): New function to determine whether an
2969         expression is a function call that should handled as build-in-place.
2970         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
2971         calls to build-in-place functions as the initialization of an allocator.
2972         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
2973         handling calls to build-in-place functions in contexts that do not
2974         involve init of a separate object (for example, actuals of subprogram
2975         calls).
2976         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
2977         handling calls to build-in-place functions as the initialization of an
2978         object declaration.
2979         (Detect_Infinite_Recursion): Add explicit parameter Process to
2980         instantiation of Traverse_Body to avoid unreferenced warning.
2981         (Check_Overriding_Inherited_Interfaces): Removed.
2982         (Register_Interface_DT_Entry): Code cleanup.
2983         (Register_Predefined_DT_Entry): Code cleanup.
2984         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
2985         inlined statements if within a transient scope.
2986         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
2987         formal parameters with occurrences of actuals in inlined body, establish
2988         visibility on the proper view of the actual's subtype for the body's
2989         context.
2990         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
2991         compatibility mode and we have an imported CPP subprogram because
2992         for now we assume that imported CPP primitives correspond with
2993         objects whose constructor is in the CPP side (and therefore we
2994         don't need to generate code to register them in the dispatch table).
2995         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
2996         aligned selected component.
2997         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
2998         the actual of an in-mode parameter is a type conversion.
2999         (Expand_Actuals): If the call does not come from source and the actual
3000         is potentially misaligned, let gigi handle it rather than rejecting the
3001         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
3002         Class Wide types as returning by reference independantly of their
3003         controlled status since with HIE runtimes class wide types are not
3004         potentially controlled anymore.
3005
3006 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
3007
3008         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
3009         references that are private components of the protected object.
3010         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
3011         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
3012         instantiation to deal with warnings.
3013         (Initialize_Protection): If expression for priority is non-static, use
3014         System_Priority as its expected type, in case the expression has not
3015         been analyzed yet.
3016
3017 2006-10-31  Robert Dewar  <dewar@adacore.com>
3018
3019         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
3020         initialization of Homonym_Len.
3021         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
3022         names from fully qualified name. Fixes problem of duplicate
3023         external names differing only in the presence of such a block name.
3024
3025 2006-10-31  Thomas Quinot  <quinot@adacore.com>
3026             Pablo Oliveira  <oliveira@adacore.com>
3027
3028         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
3029         subprogram Ids, even if they are not yet assigned.
3030         (Build_Subprogram_Id): It is now this function that will take care of
3031         calling Assign_Subprogram_Ids if necessary.
3032         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
3033         should be done only once they are assigned.
3034         (Build_From_Any_Function, case of tagged types): Add missing call to
3035         Allocate_Buffer.
3036         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
3037         type for an RACW type.
3038         (Add_RACW_Features): When processing an RACW declaration for which the
3039         designated type is already frozen, enforce E.2.2(14) rules immediately.
3040         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
3041         special reordering of controlling formals.
3042
3043         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
3044         associated stub type for an RACW type.
3045
3046 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
3047
3048         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
3049         fixed-point operations in an integer context, i.e. as operands of a
3050         conversion to an integer type, indicate that result must be rounded.
3051
3052 2006-10-31  Robert Dewar  <dewar@adacore.com>
3053
3054         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
3055         cases, pass the encoding method, since it is now required by the run
3056         time.
3057
3058         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
3059         assumption that Str'First = 1.
3060         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
3061         it on to the Value_Wide_Wide_Character call.
3062         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
3063         properly handles a string of the form quote-encoded_wide_char-quote.
3064
3065         * s-wchcnv.adb: Minor reformatting
3066
3067 2006-10-31  Javier Miranda  <miranda@adacore.com>
3068
3069         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
3070         run-time membership test to ensure that the constructed object
3071         implements the target abstract interface.
3072
3073 2006-10-31  Robert Dewar  <dewar@adacore.com>
3074
3075         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
3076         Machine_Attribute pragma internally to implement the user pragma.
3077         Add processing for pragma Interface so that it is now completely
3078         equivalent to pragma Import.
3079
3080         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
3081         so that it can be applied to all entities, including record components
3082         and enumeration literals.
3083         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
3084         priority ranges are correct, verify compatibility against task
3085         dispatching and locking policies, and if everything is correct an entry
3086         is added to the table containing priority specific dispatching entries
3087         for this compilation unit.
3088         (Delay_Config_Pragma_Analyze): Delay processing
3089         Priority_Specific_Dispatching pragmas because when processing the
3090         pragma we need to access run-time data, such as the range of
3091         System.Any_Priority.
3092         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
3093         Allow pragma Unreferenced as a context item
3094         Add pragma Preelaborable_Initialization
3095         (Analyze_Pragma, case Interface): Interface is extended so that it is
3096         now syntactically and semantically equivalent to Import.
3097         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
3098         insertion characters.
3099         Add handling for Pragma_Wide_Character_Encoding
3100         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
3101         never supercedes a real restriction, and that a real restriction
3102         always supercedes a warning.
3103         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
3104         appropriate form.
3105
3106 2006-10-31  Bob Duff  <duff@adacore.com>
3107             Ed Schonberg  <schonberg@adacore.com>
3108             Robert Dewar  <dewar@adacore.com>
3109
3110         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
3111         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
3112         Is_Inherently_Limited_Type, because return-by-reference has no meaning
3113         in Ada 2005.
3114         (Find_Node_To_Be_Wrapped): Use new method of determining the result
3115         type of the function containing a return statement, because the
3116         Return_Type field was removed. We now use the Return_Applies_To field.
3117
3118         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
3119         (Build_Task_Image_Decl): If procedure is not called from an
3120         initialization procedure, indicate that function that builds task name
3121         uses the sec. stack. Otherwise the enclosing initialization procedure
3122         will carry the indication.
3123         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
3124         N_Object_Declaration instead.
3125         (Kill_Dead_Code): New interface to implement -gnatwt warning for
3126         conditional dead code killed, and change implementation accordingly.
3127         (Insert_Actions): Add N_Return_Object_Declaration case.
3128         Correct comment to mention N_Extension_Aggregate node.
3129         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
3130         attempts to save information for global variables which cannot be
3131         safely tracked.
3132         (Get_Current_Value_Condition): Handle conditions the other way round
3133         (constant on left). Also handle right operand of AND and AND THEN
3134         (Set_Current_Value_Condition): Corresponding changes
3135         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
3136         (Get_Current_Value_Condition): Handle simple boolean operands
3137         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
3138         (Get_Current_Value_Condition): If the variable reference is within an
3139         if-statement, does not appear in the list of then_statments, and does
3140         not come from source, treat it as being at unknown location.
3141         (Get_Current_Value_Condition): Enhance to allow while statements to be
3142         processed as well as if statements.
3143         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
3144         come from source.
3145         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
3146         of loop. This is safe now that we fixed Kill_Current_Values.
3147         (OK_To_Do_Constant_Replacement): Check whether current scope is
3148         Standard, before examining outer scopes.
3149
3150 2006-10-31  Vincent Celier  <celier@adacore.com>
3151
3152         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
3153         When True, apply VMS treatment to children of packages A, G, I and S.
3154         For F320-016
3155
3156         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
3157
3158 2006-10-31  Robert Dewar  <dewar@adacore.com>
3159             Ed Schonberg  <schonberg@adacore.com>
3160
3161         * freeze.adb: Add handling of Last_Assignment field
3162         (Warn_Overlay): Supply missing continuation marks in error msgs
3163         (Freeze_Entity): Add check for Preelaborable_Initialization
3164
3165         * g-comlin.adb: Add Warnings (Off) to prevent new warning
3166
3167         * g-expect.adb: Add Warnings (Off) to prevent new warning
3168
3169         * lib-xref.adb: Add handling of Last_Assignment field
3170         (Generate_Reference): Centralize handling of pragma Obsolescent here
3171         (Generate_Reference): Accept an implicit reference generated for a
3172         default in an instance.
3173         (Generate_Reference): Accept a reference for a node that is not in the
3174         main unit, if it is the generic body corresponding to an subprogram
3175         instantiation.
3176
3177         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
3178
3179         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
3180         -gnatwq/Q.
3181         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
3182         exception handler.
3183         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
3184         use clauses, to avoid messages on packages used to qualify, and also
3185         to avoid messages from obsolescent units.
3186         (Warn_On_Useless_Assignments): Don't generate messages for imported
3187         and exported variables.
3188         (Warn_On_Useless_Assignments): New procedure
3189         (Output_Obsolescent_Entity_Warnings): New procedure
3190         (Check_Code_Statement): New procedure
3191
3192         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
3193         Change name Is_Ada_2005 to Is_Ada_2005_Only
3194         (Last_Assignment): New field for useless assignment warning
3195
3196 2006-10-31  Olivier Hainque  <hainque@adacore.com>
3197
3198         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
3199         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
3200
3201 2006-10-31  Bob Duff  <duff@adacore.com>
3202             Robert Dewar  <dewar@adacore.com>
3203             Ed Schonberg  <schonberg@adacore.com>
3204
3205         * g-awk.adb (Default_Session, Current_Session): Compile this file in
3206         Ada 95 mode, because it violates the new rules for AI-318.
3207
3208         * g-awk.ads: Use overloaded subprograms in every case where we used to
3209         have a default of Current_Session. This makes the code closer to be
3210         correct for both Ada 95 and 2005.
3211
3212         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
3213         code, relying on the fact that the compiler generates a warning
3214         instead of an error in -gnatg mode.
3215
3216         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
3217         E_Return_Statement entity kind.
3218         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
3219
3220         * par.adb (P_Interface_Type_Definition): Addition of one formal to
3221         report an error if the reserved word abstract has been previously found.
3222         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
3223
3224         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
3225         parenthesized range attribute usage
3226         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
3227
3228         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
3229         in the syntax for extended_return_statement. This is not in the latest
3230         RM, but the ARG is expected to issue an AI allowing this.
3231         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
3232         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
3233         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
3234         P_Return_Statement): Parse the new syntax for extended_return_statement.
3235
3236         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
3237         Output_End_Missing): Add error-recovery code for the new
3238         extended_return_statement syntax; that is, the new E_Return entry on
3239         the scope stack.
3240
3241         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
3242         limited to nonlimited, because otherwise we violate the new Ada 2005
3243         rules about returning limited types in function Create_AST_Handler in
3244         s-asthan.adb.
3245
3246         * sem.adb (Analyze): Add cases for new node kinds
3247         N_Extended_Return_Statement and N_Return_Object_Declaration.
3248
3249         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
3250         type is in the same category as type of context before applying check,
3251         to prevent anomalies in instantiations.
3252         (Resolve_Aggregate): Remove test for limited components in aggregates.
3253         It's unnecessary in Ada 95, because if it has limited components, then
3254         it must be limited. It's wrong in Ada 2005, because limited aggregates
3255         are now allowed.
3256         (Resolve_Record_Aggregate): Move check for limited types later, because
3257         OK_For_Limited_Init requires its argument to have been resolved.
3258         (Get_Value): When copying the component default expression for a
3259         defaulted association in an aggregate, use the sloc of the aggregate
3260         and not that of the original expression, to prevent spurious
3261         elaboration errors, when the expression includes function calls.
3262         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
3263         were missing. We also didn't handle qualified expressions. Now also
3264         allow function calls. Use new common routine OK_For_Limited_Init.
3265         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
3266         with space can upper case letter).
3267
3268         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
3269         Has_Static_Discriminants flag
3270         (Record_Type_Declaration): Diagnose an attempt to declare an interface
3271         type with discriminants.
3272         (Process_Range_Expr_In_Decl): Do validity checks on range
3273         (Build_Discriminant_Constraints): Use updated form of
3274         Denotes_Discriminant.
3275         (Process_Subtype): If the subtype is a private subtype whose full view
3276         is a concurrent subtype, introduce an itype reference to prevent scope
3277         anomalies in gigi.
3278         (Build_Derived_Record_Type, Collect_Interface_Primitives,
3279         Record_Type_Declaration):  The functionality of the subprograms
3280         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
3281         is now performed by a single routine.
3282         (Build_Derived_Record_Type): If the type definition includes an explicit
3283         indication of limitedness, then the type must be marked as limited here
3284         to ensure that any access discriminants will not be treated as having
3285         a local anonymous access type.
3286         (Check_Abstract_Overriding): Issue a detailed error message when an
3287         abstract subprogram was not overridden due to incorrect mode of its
3288         first parameter.
3289         (Analyze_Private_Extension_Declaration): Add support for the analysis of
3290         synchronized private extension declarations. Verify that the ancestor is
3291         a limited or synchronized interface or in the generic case, the ancestor
3292         is a tagged limited type or synchronized interface and all progenitors
3293         are either limited or synchronized interfaces.
3294         Derived_Type_Declaration): Check for presence of private extension when
3295         dealing with synchronized formal derived types.
3296         Process_Full_View): Enchance the check done on the usage of "limited" by
3297         testing whether the private view is synchronized.
3298         Verify that a synchronized private view is completed by a protected or
3299         task type.
3300         (OK_For_Limited_Init_In_05): New function.
3301         (Analyze_Object_Declaration): Move check for limited types later,
3302         because OK_For_Limited_Init requires its argument to have been resolved.
3303         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
3304         in order to alleviate the upward compatibility introduced by AI-318.
3305         (Constrain_Corresponding_Record): If the constraint is for a component
3306         subtype, mark the itype as frozen, to avoid out-of-scope references to
3307         discriminants in the back-end.
3308         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
3309         this subprogram against wrong sources.
3310         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
3311         discriminant of limited type completed with a protected type, when the
3312         discriminant is used to constrain a private component of the type, and
3313         expansion is disabled.
3314         (Find_Type_Of_Object): Do not treat a return subtype that is an
3315         anonymous subtype as a local_anonymous_type, because its accessibility
3316         level is the return type of the enclosing function.
3317         (Check_Initialization): In -gnatg mode, turn the error "cannot
3318         initialize entities of limited type" into a warning.
3319         (OK_For_Limited_Init): Return true for generated nodes, since it
3320         sometimes violates the legality rules.
3321         (Make_Incomplete_Declaration): If the type for which an incomplete
3322         declaration is created happens to be the currently visible entity,
3323         preserve the homonym chain when removing it from visibility.
3324         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
3325         inherited subprograms.
3326         (Access_Definition): If this is an access to function that is the return
3327         type of an access_to_function definition, context is a type declaration
3328         and the scope of the anonymous type is the current one.
3329         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
3330         incomplete subtype to the set of private dependents of the original
3331         incomplete type.
3332         (Constrain_Discriminated_Type): Emit an error message whenever an
3333         incomplete subtype is being constrained.
3334         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
3335         corresponding subtype of the full view of the original incomplete type.
3336         (Check_Incomplete): Properly detect invalid usage of incomplete types
3337         and subtypes.
3338
3339 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
3340
3341         * g-catiio.ads, g-catiio.adb (Value): New function.
3342         Given an input String, try and parse a valid Time value.
3343
3344 2006-10-31  Vincent Celier  <celier@adacore.com>
3345
3346         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
3347         Integer_Address arithmetic, as in Set_Valid.
3348
3349 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
3350             Robert Dewar  <dewar@adacore.com>
3351
3352         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
3353         handling executable extension manually and duplicating code.
3354
3355         * make.adb: Implement new -S switch
3356         (Gnatmake): Use new function Osint.Executable_Name instead
3357         of handling executable extension manually.
3358
3359         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
3360         is specified, the executable name ends with this suffix.
3361         Take advantage of Osint.Executable_Name instead of duplicating code.
3362
3363         * switch-m.adb: Recognize new gnatmake -S switch
3364
3365         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
3366         variable.
3367         (Get_Target_Parameters): Set Executable_Extension_On_Target if
3368         available.
3369
3370         * makeusg.adb: Add line for gnatmake -S switch
3371
3372 2006-10-31  Vincent Celier  <celier@adacore.com>
3373
3374         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
3375         call it with -static-libgcc, as there are some platforms, such as
3376         Darwin, where one of these two switches is compulsory to link.
3377
3378 2006-10-31  Vincent Celier  <celier@adacore.com>
3379
3380         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
3381         instead of ADA_PROJECT_PATH, for the project path.
3382         (Gnatls): When displaying the project path directories, use host dir
3383         specs.
3384
3385         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
3386         names in the project path, as absolute paths may correspond to
3387         multi-valued VMS logical names.
3388
3389 2006-10-31  Vincent Celier  <celier@adacore.com>
3390
3391         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
3392         absolute path name.
3393         (Locate_Regular_File): Ditto
3394         (Change_Dir): Remove, no longer used
3395         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
3396         on Windows. Get it calling Get_Current_Dir.
3397         (OpenVMS): Remove imported boolean, no longer needed.
3398         (Normalize_Pathname)[VMS]: Do not resolve directory names.
3399         (Pid_To_Integer): New function to convert a Process_Id to  Integer
3400
3401 2006-10-31  Thomas Quinot  <quinot@adacore.com>
3402
3403         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
3404         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
3405         to No_Socket.
3406         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
3407         W_Sig_Socket.
3408
3409 2006-10-31  Robert Dewar  <dewar@adacore.com>
3410
3411         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
3412         initial letter o as a zero.
3413
3414 2006-10-31  Robert Dewar  <dewar@adacore.com>
3415
3416         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
3417
3418 2006-10-31  Robert Dewar  <dewar@adacore.com>
3419
3420         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
3421         variant records
3422         (Layout_Variant_Record): Retrieve the discriminants from the entity
3423         rather than from the type definition, because in the case of a full
3424         type for a private type we need to take the discriminants from the
3425         partial view.
3426         (Layout_Component_List): When applying the Max operator to variants with
3427         a nonstatic size, check whether either operand is static and scale that
3428         operand from bits to storage units before applying Max.
3429         (Layout_Type): In VMS, if a C-convention access type has no explicit
3430         size clause (and does not inherit one in the case of a derived type),
3431         then the size is reset to 32 from 64.
3432
3433 2006-10-31  Vincent Celier  <celier@adacore.com>
3434
3435         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
3436         its file has already been loaded, according to the unit being loaded,
3437         not to the current value of Multiple_Unit_Index.
3438
3439 2006-10-31  Thomas Quinot  <quinot@adacore.com>
3440             Eric Botcazou  <ebotcazou@adacore.com>
3441             Arnaud Charlet  <charlet@adacore.com>
3442
3443         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
3444         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
3445         possible.
3446         (a-except.o): Pass it to the compiler.
3447         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
3448         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
3449         a-calend-mingw.adb version.
3450
3451         * Makefile.rtl: Added s-dsaser.
3452         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
3453         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
3454         Ada.Dispatching.Round_Robin.
3455         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
3456
3457         * Make-lang.in: Remove all references to gt-ada-decl.h.
3458         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
3459         sources.
3460         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
3461         Update dependencies.
3462
3463         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
3464
3465 2006-10-31  Vincent Celier  <celier@adacore.com>
3466
3467         * mlib-utl.adb (Initialized): Remove, no longer used
3468         (Initialize): Remove, no longer used
3469         (Ar): If Ar_Exec is null, get the location of the archive builder and,
3470         if there is one, the archive indexer. Fail if the archive builder cannot
3471         be found.
3472         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
3473         be found.
3474
3475 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
3476
3477         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
3478         Process_Body_Clauses): If the context of a body includes a use clause
3479         for P.Q then a with_clause for P in the same body is not redundant,
3480         even if the spec also has a with_clause on P.
3481         Add missing continuation mark to error msg
3482         (Build_Limited_Views): A limited view of a type is tagged if its
3483         declaration includes a record extension.
3484         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
3485         node, even if the subunit has errors. This avoids malfunction by
3486         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
3487         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
3488         generation of obsolescent messages for with statements (cannot do
3489         this too early, or we cannot implement avoiding the messages in the
3490         case of obsolescent units withing obsolescent units).
3491         (Install_Siblings): If the with_clause is on a remote descendant of
3492         an ancestor of the current compilation unit, find whether there is
3493         a sibling child unit that is immediately visible.
3494         (Remove_Private_With_Clauses): New procedure, invoked after completing
3495         the analysis of the private part of a nested package, to remove from
3496         visibility the private with_clauses of the enclosing package
3497         declaration.
3498         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
3499         now centralized in Generate_Reference.
3500         (Install_Limited_Context_Clauses): Remove superfluous error
3501         message associated with unlimited view visible through use
3502         and renamings. In addition, at the point in which the error
3503         is reported, we add the backslash to the text of the error
3504         to ensure that it is reported as a single error message.
3505         Use new // insertion for some continuation messages
3506         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
3507         to create implicit with_clause for parent unit mentioned in original
3508         limited_with_clause.
3509         (Install_Limited_With_Unit): Set entity of parent identifiers if the
3510         unit is a child unit. For ASIS queries.
3511         (Analyze_Subunit): If the subunit appears within a child unit, make all
3512         ancestor child units directly visible again.
3513
3514 2006-10-31  Robert Dewar  <dewar@adacore.com>
3515
3516         * par-ch10.adb (P_Context_Clause): Minor error message fix
3517
3518 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
3519             Javier Miranda  <miranda@adacore.com>
3520
3521         * par-ch12.adb: Grammar update and cleanup.
3522         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
3523         support for synchronized derived type definitions.
3524         Add the new actual Abstract_Present to every call to
3525         P_Interface_Type_Definition.
3526         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
3527         a formal object declaration with an access definition or a subtype mark
3528         with a null exclusion.
3529         (P_Generic_Association): Handle association with box, and others_choice
3530         with box, to support Ada 2005 partially parametrized formal packages.
3531
3532 2006-10-31  Robert Dewar  <dewar@adacore.com>
3533             Javier Miranda  <miranda@adacore.com>
3534
3535         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
3536         (P_Type_Declaration): Remove barrier against the reserved word "limited"
3537         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
3538         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
3539         private extensions.
3540         (P_Type_Declaration): Add the new actual Abstract_Present to every call
3541         to P_Interface_Type_Definition.
3542         (P_Interface_Type_Definition): Addition of one formal to report an error
3543         if the reserved word abstract has been previously found.
3544         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
3545         object renaming declaration with an access definition or subtype mark
3546         with a possible null exclusion.
3547
3548         * par-ch9.adb: Minor error msg fix
3549
3550         * par-load.adb: Add missing continuation mark to error msg
3551
3552         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
3553
3554 2006-10-31  Vincent Celier  <celier@adacore.com>
3555
3556         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
3557         unknown attribute in unknown package or in package that does not need
3558         to be checked.
3559         (Parse_Package_Declaration): Do not issue warning for unknown package in
3560         quiet output.
3561
3562 2006-10-31  Vincent Celier  <celier@adacore.com>
3563
3564         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
3565         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
3566         Packages_To_Check.
3567
3568 2006-10-31  Vincent Celier  <celier@adacore.com>
3569
3570         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
3571         on VMS, change "__" to '.' before checking the name.
3572         (Record_Ada_Source): Always add the source file name in the list of
3573         of sources, even if it is not the first time, as it is for another
3574         source index.
3575         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
3576         dot, instead of replacing only the first '_'.
3577
3578         * prj-part.adb (Parse): Convert project file path to canonical form
3579
3580         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
3581         extended, the project id of the project extending it is recorded in its
3582         data, even when it has already been processed as an imported project.
3583
3584 2006-10-31  Robert Dewar  <dewar@adacore.com>
3585
3586         * repinfo.adb (List_Entities): Don't list entities from renaming
3587         declarations.
3588
3589 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
3590             Robert Dewar  <dewar@adacore.com>
3591
3592         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
3593         only a restriction warning is active for the given restriction. This is
3594         desirable because we do not want to modify code in the case where only
3595         a warning is set.
3596         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
3597         causes overriding of real restrictions.
3598         Take advantage of new No_Restrictions constant.
3599
3600         * raise.h: (__gnat_set_globals): Change profile.
3601
3602 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
3603
3604         * rtsfind.adb: Remove s-polint from comment as it exists no more.
3605
3606         * rtsfind.ads: 
3607         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
3608         Move all the entities in obsolete package System.PolyORB_Interface to
3609         System.Partition_Interface.
3610         (RE_Storage_Size): New function in System.Tasking.
3611         (RE_Get_Ceiling): New entity.
3612         (RE_Set_Ceiling): New entity.
3613         (RO_PE_Get_Ceiling): New entity.
3614         (RO_RE_Set_Ceiling): New entity.
3615         (Inherit_CPP_DT): New entity
3616
3617 2006-10-31  Robert Dewar  <dewar@adacore.com>
3618
3619         * scng.adb (Scan, case of numeric literal): Better msg for identifier
3620         starting with a digit.
3621
3622 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
3623             Thomas Quinot  <quinot@adacore.com>
3624             Javier Miranda  <miranda@adacore.com>
3625             Gary Dismukes  <dismukes@adacore.com>
3626
3627         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
3628         properly an attempt to apply Unchecked_Access to a protected operation.
3629         (OK_Self_Reference): New subprogram to check the legality of an access
3630         attribute whose prefix is the type of an enclosing aggregate.
3631         Generalizes previous mechanism to handle attribute references nested
3632         arbitrarily deep within the aggregate.
3633         (Analyze_Access_Attribute): An access attribute whose prefix is a type
3634         can appear in an aggregate if this is a default-initialized aggregate
3635         for a self-referential type.
3636         (Resolve_Attribute, case Access): Ditto.
3637         Add support for new implementation defined attribute Stub_Type.
3638         (Eval_Attribute, case Attribute_Stub_Type): New case.
3639         (Analyze_Attribute, case Attribute_Stub_Type): New case.
3640         (Stream_Attribute_Available): Implement using new subprogram from
3641         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
3642         Has_Specified_Stream_Attribute flag.
3643         Disallow Storage_Size and Storage_Pool for access to subprogram
3644         (Resolve_Attribute, case 'Access et al): Take into account anonymous
3645         access types of return subtypes in extended return statements. Remove
3646         accessibility checks on anonymous access types when Unchecked_Access is
3647         used.
3648         (Analyze_Attribute): Add support for the use of 'Class to convert
3649         a class-wide interface to a tagged type.
3650         Add support for the attribute Priority.
3651         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
3652         whether the designated type is discriminated with a constrained partial
3653         view and require static matching in that case.
3654         Add local variable Des_Btyp. The Designated_Type
3655         of an access to incomplete subtype is either its non-limited view if
3656         coming from a limited with or its etype if regular incomplete subtype.
3657
3658         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
3659         Fix predicate to identify and allow cases of (expander-generated)
3660         references to tag of designated object of a RACW.
3661         (Validate_Static_Object_Name): In Ada 2005, a formal object is
3662         non-static, and therefore cannot appear as a primary in a preelaborable
3663         package.
3664         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
3665         Has_Read_Write_Attributes.
3666         (Has_Read_Write_Attributes): Reimplement in termes of
3667         Has_Stream_Attribute_Definition.
3668         (Missing_Read_Write_Attributes): When checking component types in a
3669         record, unconditionally call Missing_Read_Write_Attributes recursively
3670         (remove guard checking for Is_Record_Type / Is_Access_Type).
3671
3672 2006-10-31  Robert Dewar  <dewar@adacore.com>
3673
3674         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
3675         useless assignments here and conditionalize it on absence of exception
3676         handlers.
3677         (Analyze_Exception_Handlers): Small code reorganization of error
3678         detection code, for new handling of formal packages.
3679
3680 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
3681             Hristian Kirtchev  <kirtchev@adacore.com>
3682
3683         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
3684         that has been constant-folded, preserve information of original tree,
3685         for ASIS uses.
3686         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
3687         generated private extension declaration if the formal derived type is
3688         synchronized. Carry synchronized present over to the generated private
3689         extension.
3690         (Validate_Derived_Type_Instance): Ensure that the actual of a
3691         synchronized formal derived type is a synchronized tagged type.
3692         (Instantiate_Formal_Package): When creating the instantiation used to
3693         validate the actual package of a formal declared without a box, check
3694         whether the formal itself depends on a prior actual.
3695         (Instantiate_Formal_Subprogram): Create new entities for the defining
3696         identifiers of the formals in the renaming declaration, for ASIS use.
3697         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
3698         a renaming declaration or a subtype declaration for an actual in an
3699         instance, capture location information of declaration in generic, for
3700         ASIS use.
3701         (Instantiate_Formal_Package): Add comments on needed additional tests.
3702         AI-317 (partial parametrization) is fully implemented.
3703         (Validate_Private_Type_Instance): Add check for actual which
3704         must have preelaborable initialization
3705         Use new // insertion for some continuation messages
3706         (Analyze_Formal_Object_Declaration): Change usage of Expression to
3707         Default_Expression. Add type retrieval when the declaration has an
3708         access definition. Update premature usage of incomplete type check.
3709         (Check_Access_Definition): New subsidiary routine. Check whether the
3710         current compilation version is Ada 05 and the supplied node has an
3711         access definition.
3712         (Instantiate object): Alphabetize local variables. Handle the creation
3713         of new renaming declarations with respect to the kind of definition
3714         used - either an access definition or a subtype mark. Guard against
3715         unnecessary error message in the context of anonymous access types after
3716         they have been resolved. Add check for required null exclusion in a
3717         formal object declaration.
3718         (Switch_View): A private subtype of a non-private type needs to be
3719         switched (the base type can have been switched without its private
3720         dependents because of the last branch of Check_Private_View.
3721         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
3722         value from BT.
3723         (Instantiate_Type): Emit an error message whenever a class-wide type of
3724         a tagged incomplete type is used as a generic actual.
3725         (Find_Actual_Type): Extend routine to handle a component type in a child
3726         unit that is imported from a formal package in a parent.
3727         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
3728         agree on constrainedness, rather than checking against ultimate ancestor
3729         (Instantiate_Subprogram_Body): Create a cross-reference link to the
3730         generic body, for navigation purposes.
3731
3732 2006-10-31  Robert Dewar  <dewar@adacore.com>
3733             Thomas Quinot  <quinot@adacore.com>
3734
3735         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
3736         type.
3737         (New_Stream_Subprogram): When processing an attribute definition clause
3738         for a stream-oriented subprogram, record an entity node occurring at
3739         the point of clause to use for checking the visibility of the clause,
3740         as defined by 8.3(23) as amended by AI-195.
3741         (New_Stream_Subprogram): New procedure, factoring behaviour from both
3742          New_Stream_Function and New_Stream_Procedure.
3743         (New_Stream_Function, New_Stream_Procedure): Removed.
3744         (Analyze_Attribute_Definition_Clause, case Address): Check new
3745         Alignment_Check check
3746
3747 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
3748             Javier Miranda  <miranda@adacore.com>
3749             Robert Dewar  <dewar@adacore.com>
3750
3751         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
3752         generate the same errors compiling under -gnatc.
3753         (Try_Object_Operation): If no candidate interpretation succeeds, but
3754         there is at least one primitive operation with the right name, report
3755         error in call rather than on a malformed selected component.
3756         (Analyze_Selected_Component): If the prefix is an incomplete type from
3757         a limited view, and the full view is available, use the full view to
3758         determine whether this is a prefixed call to a primitive operation.
3759         (Operator_Check): Verify that a candidate interpretation is a binary
3760         operation before checking the type of its second formal.
3761         (Analyze_Call): Add additional warnings for function call contexts not
3762         yet supported.
3763         (Analyze_Allocator): Move the check for "initialization not allowed for
3764         limited types" after analyzing the expression. This is necessary,
3765         because OK_For_Limited_Init looks at the structure of the expression.
3766         Before analysis, we don't necessarily know what sort of expression it
3767         is. For example, we don't know whether F(X) is a function call or an
3768         indexed component; the former is legal in Ada 2005; the latter is not.
3769         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
3770         were missing. We also didn't handle qualified expressions. Now also
3771         allow function calls. Use new common routine OK_For_Limited_Init.
3772         (Analyze_Type_Conversion): Do not perform some legality checks in an
3773         instance, because the error message will be redundant or spurious.
3774         (Analyze_Overloaded_Selected_Component): Do not do style check when
3775         setting an entity, since we do not know it is the right entity yet.
3776         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
3777         (Analyze_Overloaded_Selected_Component): Same change
3778         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
3779         since regular incomplete subtypes are transformed into corresponding
3780         subtypes of their full views.
3781         (Complete_Object_Operation): Treat name of transformed subprogram call
3782         as coming from source, for browsing purposes.
3783         (Try_Primitive_Operation): If formal is an access parameter, compare
3784         with base type of object to determine whether it is a primitive
3785         operation.
3786         (Operator_Check): If no interpretation of the operator matches, check
3787         whether a use clause on any candidate might make the operation legal.
3788         (Try_Class_Wide_Operation): Check whether the first parameter is an
3789         access type whose designated type is class-wide.
3790
3791 2006-10-31  Robert Dewar  <dewar@adacore.com>
3792             Ed Schonberg  <schonberg@adacore.com>
3793             Gary Dismukes  <dismukes@adacore.com>
3794
3795         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
3796         warn on infinite loops.
3797         Add \\ to some continuation messages
3798         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
3799         (Process_Bounds): If the bounds are integer literals that result from
3800         constant-folding, and they carry a user-defined type, preserve that type
3801         rather than treating this as an integer range.
3802         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
3803         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
3804         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
3805         left hand side of assignment.
3806         (Analyze_Assignment): Add suport to manage assigments to the attribute
3807         priority of a protected object.
3808         (Check_Possible_Current_Value_Condition): Allow fully qualified names
3809         not just identifiers.
3810         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
3811         or AND THEN for possible tracking.
3812         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
3813         case of while loops so we can track values in the loop body.
3814
3815 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
3816             Hristian Kirtchev  <kirtchev@adacore.com>
3817             Bob Duff  <duff@adacore.com>
3818
3819         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
3820         procedure cannot be a protected operation (it is a basic_declaration,
3821         not a subprogram_declaration).
3822         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
3823         Subp. Add logic for entry processing.
3824         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
3825         Determine whether an entry or subprogram of a protected or task type
3826         override an inherited primitive of an implemented interface.
3827         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
3828         Update the actual used in calls to Check_Overriding_Indicator.
3829         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
3830         generate the proper reference to the parent unit, for cross-reference.
3831         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
3832         Is_Formal.
3833         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
3834         (Add_Extra_Formal): Revise procedure to allow passing in associated
3835         entity, scope, and name suffix, and handle setting of the new
3836         Extra_Formals field.
3837         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
3838         pass new parameters. Add support for adding the new extra access formal
3839         for functions whose calls are treated as build-in-place.
3840         (Analyze_A_Return_Statement): Correct casing in error message.
3841         Move Pop_Scope to after Analyze_Function_Return, because an extended
3842         return statement really is a full-fledged scope. Otherwise, visibility
3843         doesn't work right. Correct use of "\" for continuation messages.
3844         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
3845         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
3846         the node doesn't get properly marked as analyzed.
3847         (Analyze_Subprogram_Body): If subprogram is a function that returns
3848         an anonymous access type that denotes a task, build a Master Entity
3849         for it.
3850         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
3851         proper usage of null exclusion in a result definition.
3852         (Process_Formals): Code cleanup and new error message.
3853         (Process_Formals): Detect incorrect application of null exclusion to
3854         non-access types.
3855         (Conforming_Types): Handle conformance between [sub]types and itypes
3856          generated for entities that have null exclusions applied to them.
3857         (Maybe_Primitive_Operation): Add an additional type retrieval when the
3858          base type is an access subtype. This case arrises with null exclusions.
3859         (New_Overloaded_Entity): Do not remove the overriden entity from the
3860         homonym chain if it corresponds with an abstract interface primitive.
3861         (Process_Formals): Replace membership test agains Incomplete_Kind with a
3862         call to the synthesized predicate Is_Incomplete_Type.
3863         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
3864         primitives.
3865         (Analyze_Subprogram_Declaration): Check that abstract interface
3866         primitives are abstract or null.
3867         (Analyze_Subprogram_Specification): Remove previous check for abstract
3868         interfaces because it was not complete.
3869         (Has_Interface_Formals): Removed.
3870
3871 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
3872             Javier Miranda  <miranda@adacore.com>
3873
3874         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
3875         of Analyze_Package_Body, to create Itype references for anonymous
3876         access types created in the package declaration, whose designated types
3877         may have only a limited view.
3878         (Analyze_Package_Specification): For the private part of a nested
3879         package, install private_with_clauses of enclosing compilation unit if
3880         we are in its visible part.
3881         (Declare_Inherited_Private_Subprograms): Complete barrier
3882         to ensure that the primitive operation has an alias to some parent
3883         primitive. This is now required because, after the changes done for the
3884         implementation of abstract interfaces, the contents of the list of
3885         primitives has entities whose alias attribute references entities of
3886         such list of primitives.
3887         (Analyze_Package_Specification): Simplify code that handles parent units
3888         of instances and formal packages.
3889         (Uninstall_Declarations): Check the convention consistency among
3890         primitive overriding operations of a tagged record type.
3891
3892 2006-10-31  Robert Dewar  <dewar@adacore.com>
3893             Hristian Kirtchev  <kirtchev@adacore.com>
3894             Javier Miranda  <miranda@adacore.com>
3895             Ed Schonberg  <schonberg@adacore.com>
3896
3897         * sem_ch8.adb: Minor error msg rewording
3898         (Undefined): When checking for misspellings, invert arguments (to get
3899         expected and found set right)
3900         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
3901         (Analyze_Generic_Renaming): Same fix
3902         (Use_One_Package): Do not take into account the internal entities of
3903         abstract interfaces during the analysis of entities that are marked
3904         as potentially use-visible.
3905         (Find_Type): Handle the case of an attribute reference for
3906         implementation defined attribute Stub_Type (simply let the analysis of
3907         the attribute reference rewrite it).
3908         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
3909         type that appears in a Use_Type clause.
3910         (Analyze_Object_Renaming): Add support for renaming of the Priority
3911         attribute.
3912         (Find_Type): In Ada 2005, a task type can be used within its own body,
3913         when it appears in an access definition.
3914         (Analyze_Object_Renaming): Remove warning on null_exclusion.
3915         (Analyze_Object_Renaming): Introduce checks for required null exclusion
3916          in a formal object declaration or in a subtype declaration.
3917         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
3918         (Check_Null_Exclusion): New local routine to
3919         Analyze_Subprogram_Renaming. Check whether the formals and return
3920         profile of a renamed subprogram have required null exclusions when
3921         their counterparts of the renaming already impose them.
3922         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
3923         Determine whether an entity is inside a generic scope.
3924         (In_Open_Scope): First pass of documentation update.
3925         (Find_Expanded_Name): Add support for shadow entities associated with
3926         limited withed packages. This is required to handle nested packages.
3927         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
3928         that makes a renaming of a limited withed package illegal.
3929
3930 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
3931             Ed Schonberg  <schonberg@adacore.com>
3932
3933         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
3934         Check_Overriding_Indicator.
3935         (Analyze_Task_Definition): Ditto.
3936         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
3937         (Check_Overriding_Indicator): To find overridden interface operation,
3938         examine only homonyms that have an explicit subprogram declaration, not
3939         inherited operations created by an unrelated type derivation.
3940         (Check_Overriding_Indicator): When checking for the presence of "null"
3941         in a procedure, ensure that the queried node is a procedure
3942         specification.
3943         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
3944         type when the formal is an access to variable.
3945         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
3946         (Analyze_Task_Type): Same addition
3947         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
3948         provide navigation capabilities for entries.
3949
3950 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
3951             Ed Schonberg  <schonberg@adacore.com>
3952             Javier Miranda  <miranda@adacore.com>
3953             Gary Dismukes  <dismukes@adacore.com>
3954
3955         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
3956         inherited from an interface ancestor by another interface in the
3957         context of an instance as 'late'.
3958         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
3959         of a call to a function that dispatches on access result.
3960         (Check_Dispatching_Operation): In case of late overriding of a primitive
3961         that covers abstract interface subprograms we register it in all the
3962         secondary dispatch tables associated with abstract interfaces.
3963         (Check_Dispatching_Call): Add check that a dispatching call is not made
3964         to a function with a controlling result of a limited type. This is a
3965         current implementation restriction.
3966         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
3967         (Check_Dispatching_Operation): Do no emit a warning if the controlling
3968         argument is an interface type that is a generic formal.
3969         (Is_Interface_Subprogram): Removed.
3970         (Check_Dispatching_Operation): If the subprogram is not a dispatching
3971         operation, check the formals to handle the case in which it is
3972         associated with an abstract interface type.
3973
3974 2006-10-31  Robert Dewar  <dewar@adacore.com>
3975             Ed Schonberg  <schonberg@adacore.com>
3976
3977         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
3978         Add new calls to this procedure during traversal
3979         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
3980         another unit if expansion is disabled.
3981
3982 2006-10-31  Robert Dewar  <dewar@adacore.com>
3983
3984         * sem_eval.adb (Compile_Time_Compare): Make use of information from
3985         Current_Value in the conditional case, to evaluate additional
3986         comparisons at compile time.
3987
3988 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
3989             Hristian Kirtchev  <kirtchev@adacore.com>
3990             Javier Miranda  <miranda@adacore.com>
3991
3992         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
3993         subprogram type to provide better diagnostics in case of ambiguity.
3994         (Covers): Handle coverage of formal and actual anonymous access types in
3995         the context of generic instantiation.
3996         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
3997         abstract interface types; this is required to handle concurrent types
3998         with discriminants and abstract interface types.
3999         (Covers): Include type coverage of both regular incomplete subtypes and
4000         incomplete subtypes of incomplete type visibles through a limited with
4001         clause.
4002
4003 2006-10-31  Robert Dewar  <dewar@adacore.com>
4004             Hristian Kirtchev  <kirtchev@adacore.com>
4005             Ed Schonberg  <schonberg@adacore.com>
4006
4007         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
4008         messages for entities in packages which are not used.
4009         (Collect_Synchronized_Interfaces): New procedure.
4010         (Overrides_Synchronized_Primitive): New function.
4011         (Denotes_Discriminant): Extend predicate to apply to task types.
4012         Add missing continuation marks in error msgs
4013         (Unqualify): New function for removing zero or more levels of
4014         qualification from an expression. There are numerous places where this
4015         ought to be used, but we currently only deal properly with zero or one
4016         level.
4017         (In_Instance); The analysis of the actuals in the instantiation of a
4018         child unit is not within an instantiation, even though the parent
4019         instance is on the scope stack.
4020         (Safe_To_Capture_Value): Exclude the case of variables that are
4021         renamings.
4022         (Check_Obsolescent): Removed
4023         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
4024         is an aliased view, even when rewritten as a reference to the target
4025         object in an assignment.
4026         (Get_Subprogram_Entity): New function
4027         (Known_To_Be_Assigned): New function
4028         (Type_Access_Level): Compute properly the access level of a return
4029         subtype that is an anonymous access type.
4030         (Explain_Limited_Type): Correct use of "\" for continuation messages.
4031         (Is_Transfer): The new extended_return_statement causes a transfer of
4032         control.
4033         (Has_Preelaborable_Initialization): New function
4034         (Has_Null_Exclusion): New function. Given a node N, determine whether it
4035         has a null exclusion depending on its Nkind.
4036         Change Is_Lvalue to May_Be_Lvalue
4037         (May_Be_Lvalue): Extensive additional code to deal with subprogram
4038         arguments (IN parameters are not Lvalues, IN OUT parameters are).
4039         (Safe_To_Capture_Value): Extend functionality so it can be used for
4040         the current value condition case.
4041         (Has_Compatible_Alignment): New function
4042         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
4043         objects to handle the Ada 2005 case, where aliasedness no longer implies
4044         that the object is constrained. In particular, for dereferenced names,
4045         the designated object must be assumed to be unconstrained.
4046         (Kill_Current_Values): Properly deal with the case where we encounter
4047         a loop in the scope chain.
4048         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
4049         a value.
4050         (Compile_Time_Constraint_Error): Improve error message in error case
4051
4052         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
4053         associated with entities of abstract interface primitives.
4054         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
4055
4056 2006-10-31  Robert Dewar  <dewar@adacore.com>
4057
4058         * s-osinte-tru64.adb: 
4059         Mark Asm statements Volatile to prevent warnings (seems a
4060         reasonable change anyway)
4061         Fixes new warnings
4062
4063         * s-mastop-irix.adb: Add Volatile to Asm statements
4064         Suppresses warning, and seems appropriate in any case
4065
4066         * s-osinte-vms.adb: Add Volatile to Asm statement
4067
4068         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
4069
4070         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
4071         returned.
4072         Add call to Check_Code_Statement
4073
4074 2006-10-31  Robert Dewar  <dewar@adacore.com>
4075             Ed Schonberg  <schonberg@adacore.com>
4076             Bob Duff  <duff@adacore.com>
4077
4078         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
4079         Synchronized_Present): Add Formal_Derived_Type_Definition and
4080         Private_Extension_Declaration to the list of assertions.
4081         (Is_Entry_Barrier_Function): New flag
4082         (Has_Self_Reference): New flag on aggregates, to indicate that they
4083         contain a reference to the enclosing type, inserted through a default
4084         initialization.
4085         (Next_Rep_Item): Move from Node4 to Node5.
4086         (Entity): Add this field for N_Attribute_Definition_Clause.
4087         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
4088         (N_Return_Object_Declaration): Remove this node kind. We now use
4089         N_Object_Declaration instead.
4090         (Actual_Designated_Subtype): Move to a different place to make room in
4091         N_Extended_Return_Statement.
4092         (Procedure_To_Call): Move to a different place to make room in
4093         N_Extended_Return_Statement.
4094         (Return_Type): Removed this field to make room in return statements
4095         (both kinds).
4096         (Return_Statement_Entity): New field in return statements, in part to
4097         replace Return_Type, and in part to support the fact that return
4098         statements are now pushed on the scope stack during semantic analysis.
4099         (Return_Object_Declarations): New field to support extended return
4100         statements.
4101         (N_Extended_Return_Statement): New node for extended_return_statement
4102         nonterminal.
4103         (N_Return_Object_Declaration): New node for part of
4104         extended_return_statement nonterminal. Needed because all the necessary
4105         fields won't fit in N_Extended_Return_Statement.
4106         Generic_associations now carry the Box_Present flag, to indicate a
4107         default for an actual in a partially parametrized formal package.
4108
4109         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
4110         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
4111         and for the new predefined dispatching policies: EDF_Across_Priorities,
4112         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
4113         Introduce new name Stub_Type for implementation defined attribute.
4114         Add pragma Preelaborable_Initialization
4115         Add entry for Priority attribute.
4116         Add Pragma_Wide_Character_Encoding
4117         (Get_Convention_Name): Given a convention id, this function returns the
4118         corresponding name id from the names table.
4119
4120 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
4121             Robert Dewar  <dewar@adacore.com>
4122             Bob Duff  <duff@adacore.com>
4123
4124         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
4125         print null exclusion twice in the case of an access definition,
4126         Implement new -gnatL switch
4127         Remove N_Return_Object_Declaration. We now use
4128         N_Object_Declaration instead. Implement the case for
4129         N_Extended_Return_Statement. Alphabetize the cases.
4130         Add cases for new nodes N_Extended_Return_Statement and
4131         N_Return_Object_Declaration. The code is not yet written.
4132         Update the output for N_Formal_Object_Declaration
4133         and N_Object_Renaming_Declaration.
4134         (Write_Itype): Account for the case of a modular integer subtype whose
4135         base type is private.
4136
4137 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
4138
4139         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
4140         Remove elaboration code, now done in the binder.
4141
4142         * s-rident.ads: Make this unit Preelaborate.
4143         (No_Restrictions): New constant used to clean up code and follow
4144         preelaborate constraints.
4145
4146         * s-stalib.adb: 
4147         Add System.Restrictions dependence, referenced directly from the
4148         binder generated file.
4149
4150 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
4151
4152         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
4153         True when AAMP extended floating-point is in use (48-bit). Change type
4154         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
4155         the two byte array types on AFloat. Change type of IV_Ilf overlay
4156         variable from Byte8 to ByteLF. Add appropriate initializations of
4157         floating-point overlays for AAMP cases.
4158
4159 2006-10-31  Javier Miranda  <miranda@adacore.com>
4160
4161         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
4162         (Get_Ceiling): New subprogram that returns
4163         the ceiling priority of the protected object.
4164         (Set_Ceiling): New subprogram that sets the new ceiling priority of
4165         the protected object.
4166
4167         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
4168
4169         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
4170
4171 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
4172
4173         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
4174         requeuing to the same protected object to give higher priority tasks
4175         the opportunity to execute.
4176
4177 2006-10-31  Robert Dewar  <dewar@adacore.com>
4178
4179         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
4180         add more precise check for the character sequence that follows '[' to
4181         avoid possible confusion in case if '[' is the last character of a
4182         string literals.
4183         (Scan_Wide): Always allow brackets encoding
4184
4185 2006-10-31  Olivier Hainque  <hainque@adacore.com>
4186
4187         * s-stchop.ads: make this unit preelaborate. This is desirable in
4188         general and made mandatory by the use of this unit by s-taprop which
4189         is itself preelaborate.
4190
4191         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
4192         Td_Events component.
4193
4194 2006-10-31  Vincent Celier  <celier@adacore.com>
4195
4196         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
4197         in file names.
4198
4199 2006-10-31  Vincent Celier  <celier@adacore.com>
4200
4201         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
4202
4203 2006-10-31  Vincent Celier  <celier@adacore.com>
4204
4205         * makegpr.adb (Check_Compilation_Needed): Take into account path names
4206         with spaces.
4207         (Check_Compilation_Needed): When checking a C or C++ source, do not
4208         resolve symbolic links.
4209         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
4210         When not in verbose mode and Ellipse is True, display "..." for the
4211         first argument with Display set to False.
4212         (Build_Global_Archive): Always set Display True for the first object
4213         file. Call Display_Command with Ellipse set to True.
4214
4215 2006-10-31  Matt Heaney  <heaney@adacore.com>
4216
4217         * a-crbtgo.ads: Commented each subprogram
4218
4219         * a-crbtgo.adb: Added reference to book from which algorithms were
4220         adapted.
4221
4222         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
4223         indicate which child.
4224         (Generic_Conditional_Insert): changed parameter name from "Success" to
4225         "Inserted".
4226         (Generic_Unconditional_Insert_With_Hint): improved algorithm
4227
4228         * a-coorse.adb (Replace_Element): changed parameter name in call to
4229         conditional insert operation.
4230
4231         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
4232
4233         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
4234         Generic_Iteration
4235
4236         * a-ciorse.adb (Replace_Element): changed parameter name in call to
4237         conditional insert operation.
4238
4239         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
4240         Generic_Iteration.
4241
4242         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
4243         instead of mode inout.
4244
4245         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
4246         draft
4247         (Generic_Read): preserve existing buckets array if possible
4248         (Generic_Write): don't send buckets array length anymore
4249
4250         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
4251         instead of mode inout.
4252
4253         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
4254         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
4255
4256         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
4257         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
4258         (Replace_Element): local operation is now an instantiation
4259
4260         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
4261         check current length.
4262         (Generic_Replace_Element): new operation
4263
4264 2006-10-31  Doug Rupp  <rupp@adacore.com>
4265
4266         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
4267         Call TBK$SYMBOLIZE without omitting parameters.
4268
4269 2006-10-31  Vincent Celier  <celier@adacore.com>
4270
4271         * symbols-processing-vms-ia64.adb,
4272         symbols-processing-vms-alpha.adb (Process): Do not include symbols
4273         that come from generic instantiations in bodies.
4274
4275 2006-10-31  Pat Rogers  <rogers@adacore.com>
4276
4277         * a-rttiev.ads, a-rttiev.adb: 
4278         This is a significant redesign primarily for the sake of automatic
4279         timer task termination but also to fix a design flaw.
4280         Therefore we are now using an RTS lock, instead of a protected
4281         object, to provide mutual exclusion to the queue of pending events
4282         and the type Timing_Event is no longer a protected type.
4283
4284 2006-10-31  Robert Dewar  <dewar@adacore.com>
4285             Cyrille Comar  <comar@adacore.com>
4286             Ben Brosgol  <brosgol@adacore.com>
4287
4288         * debug.adb:  Update flags documentation
4289
4290         * gnat_ugn.texi: Add documentation for new -gnatwq switch
4291         Clean up documentation for several other warning switches
4292         Clarify how task stack size can be specified with various
4293         versions of Windows.
4294         Add note that -gnatVo includes ranges including loops
4295         Add documentation for -gnatL switch
4296         Add note on elaboration warning for initializing variables
4297         Add documentation for new -gnatwt warning switch
4298         Document new form of pragma Warnings (On|Off, string)
4299         Add comment on use of pragma Warnings to control warnings
4300         Add documentation for -gnatjnn switch
4301         Modify section on interfacing with C for VMS 64-bit.
4302         Add doc for -gnatVe/E
4303         Add documentation of new warning flags -gnatww/-gnatwW
4304         Add warnings about address clause overlays to list of warnings
4305         (Exception Handling Control): Document that the option --RTS must be
4306         used consistently for gcc and gnatbind.
4307         Clarify that inlining is not always possible
4308         Update documentation on pragma Unchecked_Union.
4309
4310         * gnat_rm.texi: 
4311         Add documentation for new extended version of pragma Obsolescent
4312         Add documentation for implementation defined attribute 'Stub_Type.
4313         Add note on use of Volatile in asm statements
4314         Add documentation on use of pragma Unreferenced in context clause
4315         Document new form of pragma Warnings (On|Off, pattern)
4316         Document pragma Wide_Character_Encoding
4317         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
4318         enforced if code generation is active.
4319         Add section on pragma Suppress to document GNAT specific check
4320         Alignment_Check
4321         Clarify difference between No_Dispatching_Calls & No_Dispatch.
4322         Add documentation for pragma Restrictions (No_Elaboration_Code)
4323
4324         * gnat-style.texi: 
4325         Add comments on layout of subprogram local variables in the
4326         presence of nested subprograms.
4327
4328         * ug_words: Resync.
4329
4330         * elists.ads: Minor reformatting
4331         Node returns Node_Or_Entity_Id (doc change only)
4332
4333         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
4334
4335         * g-arrspl.ads (Create): Update comments.
4336
4337         * sem.ads: Add details on the handling of the scope stack.
4338
4339         * usage.adb: Update documentation.
4340
4341         * validsw.ads, validsw.adb: 
4342         Add definition of Validity_Check_Components and implement -gnatVe/E
4343
4344         * vms_data.ads: Add missing VMS qualifiers.
4345
4346         * s-addope.ads: Add documentation on overflow and divide by zero
4347
4348 2006-10-31  Robert Dewar  <dewar@adacore.com>
4349             Thomas Quinot  <quinot@adacore.com>
4350             Arnaud Charlet  <charlet@adacore.com>
4351
4352         * fmap.adb: Put routines in alpha order
4353
4354         * g-boumai.ads: Remove redundant 'in' keywords
4355
4356         * g-cgi.adb: Minor reformatting
4357
4358         * g-cgi.ads: Remove redundant 'in' keywords
4359
4360         * get_targ.adb: Put routines in alpha order
4361
4362         * prj-attr.ads: Minor reformatting
4363
4364         * s-atacco.ads: Minor reformatting
4365
4366         * scn.adb: Put routines in alpha order
4367
4368         * sinput-l.adb: Minor comment fix
4369
4370         * sinput-p.adb: Minor comment fix
4371
4372         * s-maccod.ads: Minor reformatting
4373
4374         * s-memory.adb: Minor reformatting
4375
4376         * s-htable.adb: Fix typo in comment.
4377
4378         * s-secsta.adb: Minor comment update.
4379
4380         * s-soflin.adb: Minor reformatting
4381
4382         * s-stoele.ads: 
4383         Add comment about odd qualification in Storage_Offset declaration
4384
4385         * s-strxdr.adb: 
4386         Remove unnecessary 'in' keywords for formal parameters.
4387
4388         * treeprs.adt: Minor reformatting
4389
4390         * urealp.adb: Put routines in alpha order
4391
4392         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
4393         taking string.
4394
4395         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
4396
4397         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
4398
4399         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
4400         workaround as on other platforms.
4401
4402         * g-eacodu-vms.adb: Remove redundant 'in' keywords
4403         * g-expect-vms.adb: Remove redundant 'in' keywords
4404
4405         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
4406         clear error message if the list-of-files file cannot be opened.
4407
4408         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
4409         equality operator is always visible.
4410
4411         * lang.opt: Woverlength-strings: New option.
4412
4413         * nmake.adt: 
4414         Update copyright, since nmake.ads and nmake.adb have changed.
4415
4416         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
4417         (Binder_Output_Time_Stamps_Set): removed.
4418         (Old_Binder_Output_Time_Stamp): idem.
4419         (New_Binder_Output_Time_Stamp): idem.
4420         (Recording_Time_From_Last_Bind): idem.
4421         (Recording_Time_From_Last_Bind): Make constant.
4422
4423         * output.ads, output.adb (Write_Str): Allow LF characters
4424         (Write_Spaces): New procedure
4425
4426         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
4427
4428         * inline.adb: Minor reformatting
4429
4430         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
4431
4432         * s-mastop-vms.adb: Remove redundant 'in' keywords
4433
4434         * s-osprim-vms.adb: Remove redundant 'in' keywords
4435
4436         * s-trafor-default.adb: Remove redundant 'in' keywords
4437
4438         * 9drpc.adb: Remove redundant 'in' keywords
4439
4440         * s-osinte-mingw.ads: Minor reformatting
4441
4442         * s-inmaop-posix.adb: Minor reformatting
4443
4444         * a-direio.ads: Remove quotes from Compile_Time_Warning message
4445
4446         * a-exexda.adb: Minor code reorganization
4447
4448         * a-filico.adb: Minor reformatting
4449
4450         * a-finali.adb: Minor reformatting
4451
4452         * a-nudira.ads: Remove quote from Compile_Time_Warning message
4453
4454         * a-numeri.ads: Minor reformatting
4455
4456         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
4457
4458         * exp_pakd.ads: Fix obsolete comment
4459
4460         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
4461         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
4462         Probably not a bug, but certainly neater and more efficient.
4463
4464         * a-tienio.adb: Minor reformatting
4465
4466         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
4467         Avoid assuming low bound of string is 1.
4468
4469         * gnatbind.adb: Change Bindusg to package and rename procedure as
4470         Display, which now ensures that it only outputs usage information once.
4471         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
4472
4473         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
4474         Table'First.
4475
4476         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
4477         warning.
4478         (Match): Add pragma Assert to ensure that Matches'First is zero
4479
4480         * g-regpat.ads (Match): Document that Matches lower bound must be zero
4481
4482         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
4483         documented preconditions (also kills warnings about bad indexes).
4484
4485         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
4486         is 1.
4487         (Build_Import_Library): Ditto;
4488
4489         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
4490
4491         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
4492
4493         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
4494         lower bound of choice table is 1.
4495
4496         * sem_case.ads (Analyze_Choices): Document that lower bound of
4497         Choice_Table is 1.
4498
4499         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
4500         string is 1.
4501
4502         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
4503         and add appropriate Assert pragma to suppress warnings.
4504
4505         * atree.h, atree.ads, atree.adb
4506         Change Elist24 to Elist25
4507         Add definitions of Field28 and Node28
4508         (Traverse_Field): Use new syntactic parent table in sinfo.
4509
4510         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
4511
4512         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
4513
4514         * exp_tss.adb: Put routines in alpha order
4515
4516         * fe.h: Remove redundant declarations.
4517
4518 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
4519
4520         * utils.c (builtin_function): Rename to gnat_builtin_function.
4521         Move common code to add_builtin_function.
4522         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
4523         gnat_builtin_function.
4524         * gigi.h (builtin_function): Rename to gnat_builtin_function.
4525         Change the signature.
4526
4527 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
4528
4529         * Makefile.in: Add TEXI2PDF definition.
4530         * Make-lang.in: Add "ada.pdf" target.
4531
4532 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
4533
4534         * decl.c, utils.c: Fix comment typos.
4535         * utils.c: Fix a typo.
4536
4537 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
4538
4539         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
4540         on "pure" Ada subprograms if SJLJ exceptions are used.
4541         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
4542         on the declaration node of JMPBUF_SAVE.
4543         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
4544         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
4545         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
4546
4547 2006-08-20  Laurent GUERBY  <laurent@guerby.net>
4548
4549         PR ada/28716
4550         g-socket.adb (Bind_Socket): Call Set_Address.
4551
4552 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
4553
4554         PR ada/15802
4555         * decl.c (same_discriminant_p): New static function.
4556         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
4557         subtype and we have discriminants, fix up the COMPONENT_REFs
4558         for the discriminants to make them reference the corresponding
4559         fields of the parent subtype after it has been built.
4560
4561 2006-09-15  Roger Sayle  <roger@eyesopen.com>
4562
4563         PR ada/18817
4564         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
4565         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
4566
4567 2006-09-13  Olivier Hainque  <hainque@adacore.com>
4568
4569         PR ada/29025
4570         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
4571         of a SAVE_EXPR, just make the operand addressable/not-readonly and
4572         let the common gimplifier code make and propagate a temporary copy.
4573         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
4574         out/in-out actuals and defer setting the addressable/readonly bits
4575         to the gimplifier.
4576
4577 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
4578
4579         PR ada/28591
4580         * decl.c (components_to_record): Defer emitting debug info for the
4581         record type associated with the variant until after we are sure to
4582         actually use it.
4583
4584 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
4585
4586         PR ada/21952
4587         * gigi.h (gnat_internal_attribute_table): Declare.
4588         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
4589         * utils.c (gnat_internal_attribute_table): New global variable.
4590         (builtin_function): Always call decl_attributes on the builtin.
4591         (handle_const_attribute): New static function.
4592         (handle_nothrow_attribute): Likewise.
4593
4594 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4595
4596         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
4597
4598 2006-06-23  Olivier Hainque  <hainque@adacore.com>
4599
4600         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
4601         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
4602
4603 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
4604             Eric Botcazou  <ebotcazou@adacore.com>
4605
4606         PR ada/18692
4607         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
4608         check-gnat into check-acats.
4609
4610 2006-06-17  Karl Berry  <karl@gnu.org>
4611
4612         * gnat-style.texi (@dircategory): Use "Software development"
4613         instead of "Programming", following the Free Software Directory.
4614
4615 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4616
4617         PR ada/27944
4618         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
4619
4620 2006-06-06  Laurent GUERBY  <laurent@guerby.net>
4621
4622         PR ada/27769
4623         mlib-utl.adb: Use Program_Name.
4624
4625 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
4626
4627         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
4628         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
4629         trans.c, utils.c: Fix comment typos.  Follow spelling
4630         conventions.
4631         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
4632         conventions.
4633
4634 2006-05-19  Nicolas Setton  <setton@adacore.com>
4635
4636         * misc.c (gnat_dwarf_name): New function.
4637         (LANG_HOOKS_DWARF_NAME): Define to it.
4638
4639 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
4640
4641         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
4642         (ada/misc.o): Likewise.
4643         (ada/utils.o): Likewise.
4644
4645 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
4646
4647         * Makefile.in: Add Ada support for GNU/kFreeBSD.
4648         * s-osinte-kfreebsd-gnu.ads: New file.
4649
4650 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
4651
4652         * Make-lang.in: Rename docdir to gcc_docdir.
4653
4654 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
4655
4656         * gigi.h (get_ada_base_type): Delete.
4657         * utils2.c (get_ada_base_type): Likewise.
4658         * trans.c (convert_with_check): Operate in the real base type.
4659
4660 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4661
4662         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
4663
4664 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
4665
4666         * utils.c (create_var_decl): Use have_global_bss_p when deciding
4667         whether to make the decl common.
4668
4669 2006-02-20  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
4670
4671         * Make-lang.in (Ada): Remove.
4672         (.PHONY): Remove Ada
4673
4674 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
4675
4676         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
4677         aggregate, check the interpretations of the other operand to find one
4678         that may be a boolean array.
4679
4680         (Analyze_Selected_Component): Fix flow-of-control typo in case where
4681         the prefix is a private extension.
4682
4683 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
4684
4685         PR ada/26315
4686         * utils2.c (find_common_type): If both input types are BLKmode and
4687         have the same constant size, keep using the first one.
4688
4689         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
4690
4691         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
4692
4693         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
4694
4695 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
4696
4697         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, 
4698         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
4699         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, 
4700         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
4701         Abort_Defer/Undefer pairs to avoid the possibility of a task being
4702         aborted while owning a lock.
4703
4704 2006-02-17  Javier Miranda  <miranda@adacore.com>
4705             Robert Dewar  <dewar@adacore.com>
4706
4707         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
4708         through an access to class-wide interface we force the displacement of
4709         the pointer to the allocated object to reference the corresponding
4710         secondary dispatch table.
4711         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
4712         if Long_Shifts are supported on the target, even if 64 bit divides
4713         are not supported (configurable run time mode).
4714         (Expand_N_Type_Conversion): Do validity check if validity checks on
4715         operands are enabled.
4716         (Expand_N_Qualified_Expression): Do validity check if validity checks
4717         on operands are enabled.
4718
4719 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
4720
4721         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
4722         must be materialized when the renamed expression is an explicit
4723         dereference.
4724
4725 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
4726
4727         * freeze.adb (Statically_Discriminated_Components): Return false if
4728         the bounds of the type of the discriminant are not static expressions.
4729
4730         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
4731         the bounds of the discriminant type are not static.
4732
4733 2006-02-17  Robert Dewar  <dewar@adacore.com>
4734
4735         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
4736         then we close To if it is valid.
4737
4738 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
4739
4740         * init.c (facility_resignal_table): new array
4741         (__gnat_default_resignal_p): enhance default predicate to resignal if
4742         VMS condition has one of the predefined facility codes.
4743
4744 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
4745
4746         * Makefile.in: Use VMS64 specialized versions of several units in
4747         Interfaces.C hierarchy to be compatible with HP C default size choices.
4748         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
4749
4750 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
4751
4752         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
4753         instantiation, the corresponding entity is the related_instance of the
4754         wrapper package created for the instance.
4755
4756 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
4757
4758         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
4759         the current instance is nested within another instance in a child unit.
4760
4761 2006-02-17  Javier Miranda  <miranda@adacore.com>
4762             Ed Schonberg  <schonberg@adacore.com>
4763
4764         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
4765         type we cannot inherit the primitive operations; we inherit the
4766         Corresponding_Record_Type (which has the list of primitive operations).
4767         (Check_Anonymous_Access_Types): When creating anonymous access types for
4768         access components, use Rewrite in order to preserve the tree structure,
4769         for ASIS use.
4770         (Analyze_Object_Declaration): For limited types with access
4771         discriminants with defaults initialized by an aggregate, obtain
4772         subtype from aggregate as for other mutable types.
4773         (Derived_Type_Declaration): If the derived type is a limited interface,
4774         set the corresponding flag (Is_Limited_Record is not sufficient).
4775
4776 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
4777
4778         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
4779         to inline a function that returns an unconstrained type, the return
4780         expression must be the first variable declared in the body of the
4781         function.
4782
4783 2006-02-17  Javier Miranda  <miranda@adacore.com>
4784
4785         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
4786         abstract interface type, the static analysis is not enough to know if
4787         the interface is implemented or not by the source tagged type. Hence
4788         we must pass the work to the expander to generate the required code to
4789         evaluate the conversion at run-time.
4790         (Resolve_Equality_Op): Do not apply previous
4791         transformation if expansion is disasbled, to prevent anomalies when
4792         locating global references in a generic unit.
4793
4794 2006-02-17  Vincent Celier  <celier@adacore.com>
4795
4796         * snames.ads, snames.adb: New standard names for new project attributes:
4797         archive_builder, archive_indexer, compiler_pic_option,
4798         config_body_file_name, config_body_file_name_pattern,
4799         config_file_switches, config_file_unique, config_spec_file_name,
4800         config_spec_file_name_pattern, default_builder_switches,
4801         default_global_compiler_switches, default_language,
4802         dependency_file_kind, global_compiler_switches, include_path,
4803         include_path_file, language_kind, linker_executable_option,
4804         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
4805         roots, runtime_project.
4806
4807 2006-02-17  Matthew Heaney  <heaney@adacore.com>
4808
4809         * a-convec.ads, a-convec.adb: 
4810         (operator "&"): handle potential overflow for large index types
4811         (Insert): removed Contraint_Error when using large index types
4812         (Insert_Space): removed Constraint_Error for large index types
4813         (Length): moved constraint check from Length to Insert
4814
4815         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
4816         as not null access.
4817         Explicit raise statements now include an exception message.
4818         (operator "&"): handle potential overflow for large index types
4819         (Insert): removed Contraint_Error when using large index types
4820         (Insert_Space): removed Constraint_Error for large index types
4821         (Length): moved constraint check from Length to Insert
4822
4823 2006-02-17  Robert Dewar  <dewar@adacore.com>
4824
4825         * s-wchcnv.adb: Document handling of [ on output (we do not change
4826         this to ["5B"] and the new comments say why not.
4827
4828         * gnat_ugn.texi: 
4829         Add note for -gnatVo that this now includes the cases of type
4830         conversions and qualified expressions.
4831         Add comments on handling of brackets encoding for Text_IO
4832
4833 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
4834             Thomas Quinot  <quinot@adacore.com>
4835             Robert Dewar  <dewar@adacore.com>
4836             Javier Miranda  <miranda@adacore.com>
4837
4838         * expander.adb: Fix typo in comment
4839
4840         * exp_pakd.adb: Fix typo
4841         Minor comment reformatting.
4842
4843         * g-dyntab.adb: Minor reformatting
4844
4845         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
4846         aliased subprograms to look for the abstract interface subprogram.
4847
4848 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
4849
4850         * env.c (__gnat_setenv): Use size_t.
4851         (__gnat_unsetenv): Likewise.
4852         (__gnat_clearenv): Likewise.
4853
4854 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
4855
4856         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
4857
4858 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
4859
4860         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
4861         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
4862         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
4863         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
4864         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
4865         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
4866         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
4867         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
4868         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
4869         no longer used.
4870
4871 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
4872
4873         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
4874         protection against race conditions is not needed.
4875         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
4876         fallback handler.
4877         (Set_Specific_Handler): Add mutual exclusive access to the specific
4878         handler.
4879         (Specific_Handler): Add mutual exclusive access for retrieving the
4880         specific handler.
4881
4882         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
4883         back handler.
4884
4885         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
4886         Fall_Back_Handler and Specific_Handler.
4887
4888         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
4889         termination handlers.
4890         Set two different owerflow depending on the maximal stack size.
4891
4892         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
4893         protection against race conditions is not needed when executing the
4894         task termination handler.
4895
4896 2006-02-13  Robert Dewar  <dewar@adacore.com>
4897
4898         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
4899         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
4900         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
4901         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
4902         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
4903         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
4904         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
4905         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
4906         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
4907         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
4908         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
4909         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
4910         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
4911         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
4912         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
4913         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
4914         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
4915         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
4916         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
4917         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
4918         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
4919         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
4920         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
4921         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
4922         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
4923         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
4924         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
4925         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
4926         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
4927         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
4928         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
4929         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
4930         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
4931         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
4932         reformatting.
4933
4934 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
4935
4936         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
4937         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
4938         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
4939         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
4940         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
4941         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
4942         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
4943         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
4944         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
4945
4946 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
4947
4948         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
4949         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
4950         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
4951         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
4952         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
4953         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
4954         replaced by anonymous access type.
4955         (pthread_sigmask): Now take an access sigset_t
4956
4957         * s-osinte-hpux.ads:  Ditto.
4958         (pthread_mutex_t, pthread_cond_t): Update definitions to support
4959         properly 32 and 64 bit ABIs.
4960
4961 2006-02-13  Pascal Obry  <obry@adacore.com>
4962
4963         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
4964         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
4965         s-taprop-linux.adb, s-taprop-solaris.adb,
4966         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
4967         adjustement is already done when calling this routine.
4968
4969 2006-02-13  Pascal Obry  <obry@adacore.com>
4970
4971         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
4972         table to take advantage of the 16 priority levels available on Windows
4973         2000 and XP. On NT4 there are only 7 priority levels, this is properly
4974         supported by this new mapping.
4975
4976 2006-02-13  Nicolas Setton  <setton@adacore.com>
4977
4978         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
4979         (get_encoding): New subprogram. Extracts the encodings from an encoded
4980         Ada name.
4981
4982 2006-02-13  Pascal Obry  <obry@adacore.com>
4983             Nicolas Roche  <roche@adacore.com>
4984             Arnaud Charlet  <charlet@adacore.com>
4985
4986         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
4987         support.
4988         (__gnat_try_lock): Add unicode support by using a specific section on
4989         Windows.
4990         (__gnat_get_current_dir): Idem.
4991         (__gnat_open_read): Idem.
4992         (__gnat_open_rw): Idem.
4993         (__gnat_open_create): Idem.
4994         (__gnat_create_output_file): Idem.
4995         (__gnat_open_append): Idem.
4996         (__gnat_open_new): Idem.
4997         (__gnat_file_time_name): Idem.
4998         (__gnat_set_file_time_name): Idem.
4999         (__gnat_stat): Idem.
5000         (win32_no_block_spawn): Idem.
5001         (__gnat_locate_exec_on_path): Idem.
5002         (__gnat_opendir): New routine.
5003         (__gnat_closedir): Idem.
5004         (__gnat_readdir): Add new parameter length (pointer to int). Update
5005         implementation to use it and add specific Win32 code for Unicode
5006         support.
5007         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
5008         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
5009         (convert_addresses): Do not define this dummy routine on VMS.
5010
5011         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
5012         runtime Unicode support will be activated.
5013         (S2WS): String to Wide-String conversion. This version just copy a
5014         string in non Unicode version.
5015         (WS2S): Wide-String to String conversion. This version just copy a
5016         string in non Unicode version.
5017
5018         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
5019         (Open): Now import __gnat_opendir from adaint.c.
5020         (Read): Change the implementation to support unicode characters. It is
5021         not possible to use strlen() on Windows as this version supports only
5022         standard ASCII characters. So the length of the directory entry is now
5023         returned from the imported __gnat_readdir routine.
5024         Update copyright notice.
5025
5026         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
5027         (opendir): Moved to adaint.c.
5028
5029         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
5030         (Get_Directory): Fix wrong indexing.
5031         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
5032         __gnat_getenv from env.c
5033         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
5034         from env.c
5035
5036         * env.h, env.c: New file.
5037
5038         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
5039         adaint.c by __gnat_getenv from env.c
5040
5041         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
5042         adaint.c by __gnat_getenv from env.c
5043
5044         * Make-lang.in: Add env.o in the list of C object needed by gnat1
5045         and gnatbind.
5046         Update dependencies.
5047
5048 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5049             Olivier Hainque  <hainque@adacore.com>
5050             Eric Botcazou  <ebotcazou@adacore.com>
5051
5052         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
5053         
5054         * gigi.h (value_factor_p): Add prototype and description, now public.
5055
5056         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
5057         promotion for field with rep clause if the associated size was proven
5058         to be in error.
5059         Expand comments describing attempts to use a packable type.
5060         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
5061         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
5062         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
5063         necessary since these are not different types and pointers may
5064         actually designate any subtype in this hierarchy.
5065         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
5066         discriminants but put them into record only if not Unchecked_Union;
5067         pass flag to components_to_record showing Unchecked_Union.
5068         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
5069         components before variants; don't set TYPE_UNCHECKED_UNION_P.
5070         (components_to_record): New argument UNCHECKED_UNION.
5071         Remove special case code for Unchecked_Union and instead use main code
5072         with small changes.
5073
5074         PR ada/26096
5075         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
5076         variable with the expression being built, only its inner field.
5077
5078         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
5079         emit_sequence_entry_statements.
5080         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
5081         (establish_gnat_vms_condition_handler): Move before
5082         Subprogram_Body_to_gnu.
5083         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
5084         for a subprogram if it has a foreign convention or is exported.
5085         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
5086         substituted for a CONST_DECL.
5087         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
5088         Etype to assoc_to_constructor.
5089         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
5090         discriminants of Unchecked_Union.
5091         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
5092         don't need cluttering preprocessor directives.
5093         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
5094         condition handler as current in the compiled function.
5095         (body_with_handlers_p): New function. Tell whether a given sequence of
5096         statements node is attached to a package or subprogram body and involves
5097         exception handlers possibly nested within inner block statements.
5098         (emit_sequence_entry_statements): New function, to emit special
5099         statements on entry of sequences when necessary. Establish GNAT
5100         condition handler in the proper cases for VMS.
5101         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
5102         emit_sequence_entry_statements.
5103
5104         * utils2.c (find_common_type): If both input types are BLKmode and
5105         have a constant size, use the smaller one.
5106         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
5107         the same.
5108
5109         * utils.c (value_factor_p): Make public, to allow uses from other gigi
5110         units.
5111         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
5112         (convert, case UNION_TYPE): Remove special treatment for unchecked
5113         unions.
5114
5115         PR ada/18659
5116         (update_pointer_to): Update variants of pointer types to unconstrained
5117         arrays by attaching the list of fields of the main variant.
5118
5119 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
5120             Robert Dewar  <dewar@adacore.com>
5121
5122         * a-exexpr.adb, a-exexpr-gcc.adb
5123         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
5124         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
5125         Remove code unused for exception propagation for the compiler itself
5126         from a-except.adb and update to still share separate packages.
5127
5128         * a-except.ads, a-except.adb: Ditto.
5129         Add comments that this version is now used only by the compiler and
5130         other basic tools. The full version that includes the Ada 2005 stuff
5131         is in separate files a-except-2005.ads/adb. The reason is that we do
5132         not want to cause bootstrap problems with compilers not recognizing
5133         Wide_Wide_String.
5134         Add exception reason code PE_Implicit_Return
5135         Add new exception reason code (Null Exception_Id)
5136
5137         * a-except-2005.adb, a-except-2005.ads: New files.
5138
5139         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
5140
5141         * s-wchcon.adb: New file.
5142
5143         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
5144         (traceback.o deps): Likewise.
5145         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
5146         Activate build of GMEM instrumentation library on VMS targets.
5147         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
5148         Use a-except-2005.ads/adb for all run-time library builds unless
5149         specified otherwise.
5150         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
5151         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
5152         Use s-parame.adb on all native platforms.
5153         Use s-parame-vxworks.adb on all vxworks platforms.
5154         Add env.c env.h in LIBGNAT_SRCS
5155         Add env.o in LIBGNAT_OBJS
5156         (GNATMAKE_OBJS): Remove ctrl_c.o object.
5157         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
5158         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
5159         supports VxWorks 6 RTPs.
5160         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
5161         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
5162
5163         * types.h, types.ads (Terminate_Program): New exception
5164         Add comment on modifying multiple versions of a-except.adb when the
5165         table of exception reasons is modified.
5166         Add exception reason code PE_Implicit_Return
5167         Add new exception reason code (Null Exception_Id)
5168
5169         * clean.adb (Initialize): Get the target parameters before checking
5170         if target is OpenVMS. Move the OpenVMS specific code here from package
5171         body elaboration code.
5172
5173 2006-02-13  Thomas Quinot  <quinot@adacore.com>
5174             Vincent Celier  <celier@adacore.com>
5175             Robert Dewar  <dewar@adacore.com>
5176
5177         * ali-util.adb (Get_File_Checksum): Update to account for change in
5178         profile of Initialize_Scanner.
5179
5180         * gprep.adb (Gnatprep): Update to account for change in profile of
5181         Initialize_Scanner.
5182         (Process_One_File): Same.
5183
5184         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
5185         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
5186         that behaviour using the new Unit information recorded in the source
5187         files table, rather than going through all units every time.
5188         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
5189         (Get_Source_Unit): Same.
5190
5191         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
5192         change in profile of Initialize_Scanner.
5193         (Prepare_To_Preprocess): Same.
5194
5195         * lib.ads: Fix typo in comment (templace -> template).
5196
5197         * prj-part.adb (Parse_Single_Project): Update to account for change in
5198         profile of Initialize_Scanner.
5199
5200         * scn.adb (Initialize_Scanner): Account for change in profile of
5201         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
5202         Also record the association of the given Source_File_Index to the
5203         corresponding Unit_Number_Type.
5204
5205         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
5206         procedure.
5207         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
5208         Remove Unit formal for generic scanner: this formal
5209         is only relevant to Scn (the scanner instance used to parse Ada source
5210         files), not to other instances. Update comment accordingly.
5211         (Scan): Use new function Snames.Is_Keyword_Name.
5212
5213         * sinfo-cn.adb: Fix typo in comment.
5214
5215         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
5216         Unit.
5217
5218         * sinput.ads (Source_File_Record): New component Unit, used to capture
5219         the unit identifier (if any) associated to a source file.
5220
5221         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
5222         Unit in Source_File_Record.
5223
5224         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
5225         in profile of Initialize_Scanner.
5226
5227         * scans.adb (Initialize_Ada_Keywords): New procedure
5228
5229         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
5230         Ada keywords in the Namet table, without the need to call
5231         Initialize_Scanner.
5232
5233         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
5234         (Is_Keyword_Name): New function
5235
5236         * snames.ads: Add subtype Configuration_Pragma_Names
5237         Add pragma Ada_2005 (synonym for Ada_05)
5238         (Is_Keyword_Name): New function
5239
5240         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
5241
5242 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
5243
5244         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
5245         index.
5246
5247         * a-stwima.adb (To_Set): Add extra check when N = 0.
5248
5249         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
5250
5251 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
5252
5253         * s-parame-mingw.adb, s-parame-linux.adb,
5254         s-parame-solaris.adb: Removed, replaced by s-parame.adb
5255
5256         * s-parame-vxworks.ads: Fix typo.
5257
5258         * s-parame-vxworks.adb: New file.
5259
5260         * s-parame.adb: Version now used by all native platforms.
5261         (Default_Stack_Size): Use 2 megs for default stack size and use
5262         __gl_default_stack_size when available.
5263         (Minimum_Stack_Size): Use 12K.
5264
5265         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
5266         (Create_Task): Refine implementation taking advantage of the XP stack
5267         size support. On XP, we now create the thread using the flag
5268         STACK_SIZE_PARAM_IS_A_RESERVATION.
5269
5270         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
5271
5272         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
5273         XP and 0 on older Windows versions.
5274
5275         * interfac-vms.ads: Removed, no longer used.
5276
5277 2006-02-13  Matthew Heaney  <heaney@adacore.com>
5278
5279         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 
5280         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 
5281         a-cohase.adb: All explicit raise statements now include an exception
5282         message.
5283
5284         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
5285         (Update_Element_Preserving_Key): renamed op to just Update_Element.
5286         Explicit raise statements now include an exception message
5287
5288         * a-cihase.ads, a-cohase.ads: Removed comment.
5289
5290         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
5291         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
5292         a-szbzha.adb, a-szfzha.ads: New files.
5293
5294 2006-02-13  Matthew Heaney  <heaney@adacore.com>
5295
5296         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
5297         quicksort.
5298
5299 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
5300
5301         * lang.opt: Wvariadic-macros: New option.
5302         Wold-style-definition: Likewise.
5303         Wmissing-format-attribute: Likewise.
5304
5305         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
5306         -Wold-style-definition and -Wmissing-format-attribute.
5307
5308 2006-02-13  Robert Dewar  <dewar@adacore.com>
5309
5310         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
5311
5312         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
5313
5314 2006-02-13  Nicolas Roche  <roche@adacore.com>
5315
5316         * a-envvar.adb, a-envvar.ads: New files.
5317
5318 2006-02-13  Douglas Rupp  <rupp@adacore.com>
5319
5320         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
5321
5322         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
5323
5324 2006-02-13  Pat Rogers  <rogers@adacore.com>
5325
5326         * a-rttiev.adb, a-rttiev.ads: New files.
5327
5328 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
5329
5330         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
5331         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
5332
5333         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
5334
5335 2006-02-13  Robert Dewar  <dewar@adacore.com>
5336
5337         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 
5338         sem_case.adb: Minor code reorganization (not Present should be No)
5339
5340 2006-02-13  Geert Bosch  <bosch@adacore.com>
5341             Gary Dismukes  <dismukes@adacore.com>
5342
5343         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
5344         0, since the lower bound of the actual string may be greater than one.
5345
5346         PR ada/20753
5347         * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
5348         layout is requested.
5349
5350 2006-02-13  Vincent Celier  <celier@adacore.com>
5351
5352         * back_end.adb (Scan_Compiler_Arguments): Check if
5353         Search_Directory_Present is True and, if it is, add the argument in
5354         the source search directory path.
5355
5356         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
5357         Search_Directory_Present to True.
5358
5359 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
5360
5361         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
5362         volatile, to tell the compiler to preserve this variable at any level
5363         of optimization.
5364         (Gen_Versions_Ada): Temporarily work around codegen bug.
5365
5366 2006-02-13  Vincent Celier  <celier@adacore.com>
5367
5368         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
5369         gcc to link with option -shared-libgcc.
5370         (Gnatlink): Remove duplicate switches -shared-libgcc
5371
5372 2006-02-13  Robert Dewar  <dewar@adacore.com>
5373
5374         * gnatvsn.ads (Current_Year): New constant, used to easily update
5375         copyright on all GNAT tools.
5376
5377         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
5378         copyright notice.
5379
5380 2006-02-13  Robert Dewar  <dewar@adacore.com>
5381
5382         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
5383         after hyphen (small aesthetic change useful for a range of numbers
5384         using ^-^.
5385         Suppress range checks for a couple of assignments which otherwise
5386         cause validity checks with validity checking turned on.
5387
5388         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
5389         Improvement in error message for object.
5390         (Rep_Item_Too_Late): Remove '!' in warning message.
5391
5392 2006-02-13  Robert Dewar  <dewar@adacore.com>
5393             Eric Botcazou  <ebotcazou@adacore.com>
5394
5395         * err_vars.ads: Suppress range checks for a couple of assignments
5396         which otherwise cause validity checks with validity checking turned on.
5397         Update comments.
5398
5399         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
5400         Make message unconditional if it is a warning.
5401         (Error_Msg_NEL): Always output warning messages.
5402         Suppress range checks for a couple of assignments which otherwise
5403         cause validity checks with validity checking turned on.
5404
5405         * errout.ads (Message Insertion Characters): Document that '!' is
5406         implied by '?' in error messages.
5407
5408         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
5409         (Gnat1drv): Use a goto to end of main subprogram instead of
5410         Exit_Program (E_Success) so that finalization can occur normally.
5411
5412 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
5413
5414         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
5415         wrapped around.
5416
5417 2006-02-13  Vincent Celier  <celier@adacore.com>
5418
5419         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
5420         Unchecked_Conversion functions.
5421         (Modification_Time): Use direct conversion of OS_Time to Calendar time
5422         when OpenVMS returns False.
5423
5424         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
5425         a-dirval.adb (OpenVMS): New Boolean function
5426
5427 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
5428             Thomas Quinot  <quinot@adacore.com>
5429
5430         * checks.adb (Build_Discriminant_Checks): If the expression being
5431         checks is an aggregate retrieve the values of its discriminants to
5432         generate the check, rather than creating a temporary and a reference
5433         to it.
5434         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
5435         (Install_Null_Excluding_Check): Ditto
5436         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
5437         not for the renamed object, so that the actual itype is attached in the
5438         proper context.
5439
5440 2006-02-13  Robert Dewar  <dewar@adacore.com>
5441             Vincent Celier  <celier@adacore.com>
5442
5443         * debug.adb: Eliminate numeric switches for binder/gnatmake
5444
5445         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
5446         switches for the compiler.
5447         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
5448         (Scan_Make_Switches): When failing with an illegal switch, output an
5449         error message with the full switch.
5450         Eliminate numeric switches for binder/gnatmake
5451
5452         * switch.ads, switch.adb (Bad_Switch): New procedure
5453
5454         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
5455         Remove 0-9 as debug flag character possibilities
5456         -d is now controlling the primary stack size when its value is a
5457         positive. Also add checks against invalid values, and support for kb,
5458         mb. Ditto for -D switch.
5459
5460 2006-02-13  Robert Dewar  <dewar@adacore.com>
5461             Serguei Rybin  <rybin@adacore.com>
5462
5463         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
5464         save/restore routines.
5465         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
5466         were not always properly handled previously.
5467         Since we are changing the tree format anyway, also get rid of the
5468         junk obsolete Immediate_Errors flag.
5469         (Tree_Read): Change the way of reading Tree_Version_String - now we
5470         read the version string from the tree even if its length is not the
5471         same as the length of the version string computed from Gnatvsn.
5472         (Search_Directory_Present): New Boolean flag for the compiler.
5473         Define Tree_Version_String as a dynamic string.
5474         (Default_Stack_Size): new variable, used to handle switch -d.
5475
5476         * par-prag.adb: 
5477         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
5478         only for main unit.
5479         Add pragma Ada_2005 (synonym for Ada_05)
5480         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
5481         were not always properly handled previously.
5482
5483         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
5484         explicit Ada_95 to Ada_2005.
5485
5486 2006-02-13  Javier Miranda  <miranda@adacore.com>
5487             Robert Dewar  <dewar@adacore.com>
5488             Ed Schonberg  <schonberg@adacore.com>
5489
5490         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
5491         against errors in the source program: a private types for which the
5492         corresponding full type declaration is missing and pragma CPP_Virtual
5493         is used.
5494         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
5495         (Is_Known_Null): New flag
5496         (Has_Pragma_Pure): New flag
5497         (No_Return): Present in all entities, set only for procedures
5498         (Is_Limited_Type): A type whose ancestor is an interface is limited if
5499         explicitly declared limited.
5500         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
5501         entities. Only used for component marked Is_Tag. If present it stores
5502         the Offset_To_Top function used to provide this value in tagged types
5503         whose ancestor has discriminants.
5504
5505         * exp_ch2.adb: Update status of new Is_Known_Null flag
5506
5507         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
5508
5509         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
5510         the categorization sense if Is_Pure was set by pragma Pure_Function.
5511
5512 2006-02-13  Quentin Ochem  <ochem@adacore.com>
5513             Olivier Hainque  <hainque@adacore.com>
5514
5515         * bindusg.adb: Updated documentation for -d and -D switches.
5516
5517         * raise.h (__gnat_set_globals): added new parameter for
5518         Default_Stack_Size.
5519
5520         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
5521         (__gnat_handle_vms_condition): Adjust context before raise.
5522         (__gnat_install_handler): Restore the global vector setup for GCC
5523         versions before 3.4, as the frame based circtuitry is not available
5524         in this case.
5525         (__gnat_set_globals): added a parameter default_stack_size
5526         (__gl_default_stack_size): new variable.
5527
5528 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
5529
5530         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
5531         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
5532         does not exist in the Ada RM.
5533         (Compatible_Int_Bounds): Determine whether two integer range bounds
5534         are of equal length and have the same start and end values.
5535         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
5536         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
5537         aggregate when it is part of an object declaration.
5538         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
5539         constrains discriminants of its parent, add explicitly the discriminant
5540         constraints of the ancestor by retrieving them from the
5541         stored_constraint of the parent.
5542
5543 2006-02-13  Robert Dewar  <dewar@adacore.com>
5544
5545         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
5546         attribute Mechanism_Code is applied to renamed subprogram, modify
5547         prefix to point to base subprogram.
5548         Max/Min attributes now violate Restriction No_Implicit_Conditionals
5549
5550         * sinfo.ads: Document that Mechanism_Code cannot be applied to
5551         renamed subprograms so that the front-end must replace the prefix
5552         appropriately.
5553
5554 2006-02-13  Javier Miranda  <miranda@adacore.com>
5555             Gary Dismukes  <dismukes@adacore.com>
5556
5557         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
5558         availability of RE_Interface_Tag.
5559         (Build_Initialization_Call): Fix wrong access to the discriminant value.
5560         (Freeze_Record_Type): Do not generate the tables associated with
5561         timed and conditional dispatching calls through synchronized
5562         interfaces if compiling under No_Dispatching_Calls restriction.
5563         When compiling for Ada 2005, for a nonabstract
5564         type with a null extension, call Make_Controlling_Function_Wrappers
5565         and insert the wrapper function declarations and bodies (the latter
5566         being appended as freeze actions).
5567         (Predefined_Primitive_Bodies): Do not generate the bodies of the
5568         predefined primitives associated with timed and conditional
5569         dispatching calls through synchronized interfaces if we are
5570         compiling under No_Dispatching_Calls.
5571         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
5572         service is available before generating a call.
5573         (Make_Controlling_Function_Wrappers): New procedure.
5574         (Expand_N_Full_Type_Declaration): Create a class-wide master for
5575         access-to-limited-interfaces because they can be used to reference
5576         tasks that implement such limited interface.
5577         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
5578         procedure spec and body of the Offset_To_Top function that is generated
5579         when the parent of a type with discriminants has secondary dispatch
5580         tables.
5581         (Init_Secondary_Tags): Handle the case in which the parent of the type
5582         containing secondary dispatch tables has discriminants to generate the
5583         correct arguments to call Set_Offset_To_Top.
5584         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
5585
5586         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
5587         Add Wide_[Wide_]Expanded_Name.
5588         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
5589         the same functionality of Get_Prim_Op_Address but applied to predefined
5590         primitive operations because the pointers to the predefined primitives
5591         are now saved in a separate table.
5592         (Parent_Size): Modified to get access to the separate table of primitive
5593         operations or the parent type.
5594         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
5595         functionality of Set_Prim_Op_Address but applied to predefined primitive
5596         operations.
5597         (Set_Signature): New subprogram used to store the signature of a DT.
5598         (Displace): If the Offset_To_Top value is not static then call the
5599         function generated by the expander to get such value; otherwise use
5600         the value stored in the table of interfaces.
5601         (Offset_To_Top): The type of the actual has been changed to Address to
5602         give the correct support to tagged types with discriminants. In this
5603         case this value is stored just immediately after the tag field.
5604         (Set_Offset_To_Top): Two new formals have been added to indicate if the
5605         offset_to_top value is static and hence pass this value to the run-time
5606         to store it in the table of interfaces, or else if this value is dynamic
5607         and then pass to the run-time the address of a function that is
5608         generated by the expander to provide this value for each object of the
5609         type.
5610
5611         * rtsfind.ads (Default_Prin_Op_Count): Removed.
5612         (Default_Prim_Op_Count): New entity
5613         (Get_Predefined_Prim_Op_Address): New entity
5614         (Set_Predefined_Prim_Op_Address): New entity
5615         (RE_Set_Signature): New entity
5616
5617 2006-02-13  Thomas Quinot  <quinot@adacore.com>
5618             Ed Schonberg  <schonberg@adacore.com>
5619
5620         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
5621         Make_Adjust_Call done for a newly-allocated object.
5622
5623         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
5624         in a subprogram are wrapped in a cleanup block, indicate that the
5625         subprogram contains an inner block with an exception handler.
5626         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
5627         Adjust call is for a newly-allocated object. In that case we must not
5628         assume that the finalization list chain pointers are correct (since they
5629         come from a bit-for-bit copy of the original object's pointers) so if
5630         the attach level would otherwise be zero (no change), we set it to 4
5631         instead to cause the pointers to be reset to null.
5632
5633         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
5634         reset chain pointers to null.
5635
5636 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
5637
5638         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
5639         string, and the context requires a loop for the assignment (e.g.
5640         because the left-hand side is packed), generate a unique name for the
5641         temporary that holds the string, to prevent spurious name clashes.
5642
5643 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
5644             Javier Miranda  <miranda@adacore.com>
5645             Robert Dewar  <dewar@adacore.com>
5646             Gary Dismukes  <dismukes@adacore.com>
5647
5648         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
5649         return unconstrained arrays.
5650         Update comments.
5651         (Expand_Call):  An indirect call through an access parameter of a
5652         protected operation is not a protected call.
5653         Add circuit to raise CE in Ada 2005 mode following call
5654         to Raise_Exception.
5655         (Register_DT_Entry): Do nothing if
5656         the run-time does not give support to abstract interfaces.
5657         (Freeze_Subprogram): In case of dispatching operations, do not generate
5658         code to register the operation in the dispatch table if the source
5659         is compiled with No_Dispatching_Calls.
5660         (Register_Predefined_DT_Entry): Generate code that calls the new
5661         run-time subprogram Set_Predefined_Prim_Op_Address instead of
5662         Set_Prim_Op_Address.
5663
5664         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
5665         on array assignments if the right-hand side is a function call that has
5666         been inlined. Check is performed on the assignment in the block.
5667         (Process_Bounds): If bounds and range are overloaded, apply preference
5668         rule for root operations to disambiguate, and diagnose true ambiguity.
5669         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
5670         a tag-indeterminate right-hand side even when Expander_Active is True.
5671         Needed to ensure that dispatching calls to T'Input are allowed and
5672         get the tag of the target class-wide object.
5673
5674         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
5675         an inherited primitive operation that already overrides several
5676         abstract interface primitives. For transitivity, the new entity must
5677         also override all the abstract interface primitives covered by the
5678         inherited overriden primitive.
5679         Emit warning if new entity differs from homograph in same scope only in
5680         that one has an access parameter and the other one has a parameter of
5681         a general access type with the same designated type, at the same
5682         position in the signature.
5683         (Make_Inequality_Operator): Use source locations of parameters and
5684         subtype marks from corresponding equality operator when creating the
5685         tree structure for the implicit declaration of "/=". This does not
5686         change anything in behaviour except that the decoration of the
5687         components of the subtree created for "/=" allows ASIS to get the
5688         string images of the corresponding identifiers.
5689         (Analyze_Return_Statement): Remove '!' in warning message.
5690         (Check_Statement_Sequence): Likewise.
5691         (Analyze_Subprogram_Body): For an access parameter whose designated type
5692         is an incomplete type imported through a limited_with clause, use the
5693         type of the corresponding formal in the body.
5694         (Check_Returns): Implicit return in No_Return procedure now raises
5695         Program_Error with a compile time warning, instead of beging illegal.
5696         (Has_Single_Return):  Function returning unconstrained type cannot be
5697         inlined if expression in unique return statement is not an identifier.
5698         (Build_Body_To_Inline): It is possible to inline a function call that
5699         returns an unconstrained type if all return statements in the function
5700         return the same local variable. Subsidiary procedure Has_Single_Return
5701         verifies that the body conforms to this restriction.
5702
5703         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
5704         same type, and  one of them is of an anonymous access type, convert
5705         the other operand to it, so that this is a valid binary operation for
5706         gigi.
5707         (Resolve_Type_Conversion): Handle subtypes of protected types and
5708         task types when accessing to the corresponding record type.
5709         (Resolve_Allocator): Add '\' in 2-line warning message.
5710         Remove '!' in warning message.
5711         (Resolve_Call): Add '\' in 2-line warning message.
5712         (Valid_Conversion): Likewise.
5713         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
5714         resulting type may be an access type with an implicit dereference.
5715         Obtain the proper component from the designated type.
5716         (Make_Call_Into_Operator): Handle properly a call to predefined equality
5717         given by an expanded name with prefix Standard, when the operands are
5718         of an anonymous access type.
5719         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
5720         Explicit_Dereference and Resolve_Selected_Component, to verify that the
5721         prefix of the expression is not of an incomplete type. Allows full
5722         diagnoses of all semantic errors.
5723         (Resolve_Actuals): If the actual is an allocator whose directly
5724         designated type is a class-wide interface we build an anonymous
5725         access type to use it as the type of the allocator. Later, when
5726         the subprogram call is expanded, if the interface has a secondary
5727         dispatch table the expander will add a type conversion to force
5728         the displacement of the pointer.
5729         (Resolve_Call): If a function that returns an unconstrained type is
5730         marked Inlined_Always and inlined, the call will be inlined and does
5731         not require the creation of a transient scope.
5732         (Check_Direct_Boolean_Op): Removed
5733         (Resolve_Comparison_Op): Remove call to above
5734         (Resolve_Equality_Op): Remove call to above
5735         (Resolve_Logical_Op): Inline above, since this is only call.
5736         (Valid_Conversion): Handle properly conversions between arrays of
5737         convertible anonymous access types.
5738
5739         PR ada/25885
5740         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
5741         the literal in an unchecked conversion, because GCC 4.x needs a static
5742         value for a string bound.
5743
5744 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
5745             Hristian Kirtchev  <kirtchev@adacore.com>
5746
5747         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
5748         components of the corresponding record, take into account component
5749         definitions that are access definitions.
5750         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
5751         procedure is not considered a dispatching call and will be expanded
5752         properly.
5753
5754 2006-02-13  Javier Miranda  <miranda@adacore.com>
5755
5756         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
5757         controlling argument of the dispatching call is an abstract interface
5758         class-wide type then we use it directly.
5759         Check No_Dispatching_Calls restriction.
5760         (Default_Prim_Op_Position): Remove the code that looks for the last
5761         entity in the list of aliased subprograms. This code was wrong in
5762         case of renamings.
5763         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
5764         when the source is compiled with the No_Dispatching_Calls restriction.
5765         (Init_Predefined_Interface_Primitives): No need to inherit primitives
5766         if we are compiling with restriction No_Dispatching_Calls.
5767         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
5768         subprograms if we are compiling under No_Dispatching_Calls restriction.
5769         (Make_DT): Generate a dispatch table with a single dummy entry if
5770         we are compiling with the No_Dispatching_Calls restriction. In
5771         addition, in this case we don't generate code that calls to the
5772         following run-time subprograms: Set_Type_Kind, Inherit_DT.
5773         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
5774         of this subprogram if compiling with the No_Dispatching_Calls
5775         restriction.
5776         (Expand_Type_Conversion): Instead of using the actual parameter,
5777         the argument passed as parameter to the conversion function was
5778         erroneously referenced by the expander.
5779         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
5780         Set_Predefined_Primitive_Op_Address and Set_Signature.
5781         (Expand_Dispatching_Call): Generate call to
5782         Get_Predefined_Prim_Op_Address for predefined primitives.
5783         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
5784         predefined primitives.
5785         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
5786         primitives we reserve one dummy entry to ensure that the tag does not
5787         point to some memory that is associated with some other object. In
5788         addition, remove all the old code that generated the assignments
5789         associated with the signature of the dispatch table and replace them
5790         by a call to the new subprogram Set_Signature.
5791         (Set_All_DT_Position): Change the algorithm because now we have a
5792         separate dispatch table associated with predefined primitive operations.
5793         (Expand_Interface_Conversion): In case of non-static offset_to_top
5794         add explicit dereference to get access to the object after the call
5795         to displace the pointer to the object.
5796         (Expand_Interface_Thunk): Modify the generation of the actual used
5797         in the calls to the run-time function Offset_To_Top to fulfil its
5798         new interface.
5799         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
5800
5801 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
5802
5803         * exp_dist.adb (Copy_Specification): For access parameters, copy
5804         Null_Exclusion flag, which will have been set for stream subprograms
5805         in Ada2005 mode.
5806
5807 2006-02-13  Pascal Obry  <obry@adacore.com>
5808
5809         * expect.c (__gnat_expect_portable_execvp): New implementation. The
5810         previous implementation was using the C runtime spawnve routine but
5811         the corresponding wait was using directly the Win32 API. This was
5812         causing some times a lock when waiting for an event using
5813         WaitForSingleObject in __gnat_waitpid. This new implementation uses
5814         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
5815         API fixes this problem.
5816
5817 2006-02-13  Robert Dewar  <dewar@adacore.com>
5818
5819         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
5820         call.
5821
5822 2006-02-13  Thomas Quinot  <quinot@adacore.com>
5823
5824         * exp_pakd.ads: Fix typos in comments.
5825
5826         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
5827         array reference that is an explicit dereference, mark the converted
5828         (packed) array reference as analyzed to prevent a forthcoming
5829         reanalysis from resetting its type to the original (non-packed) array
5830         type.
5831
5832 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
5833             Javier Miranda  <miranda@adacore.com>
5834             Eric Botcazou  <ebotcazou@adacore.com>
5835
5836         * exp_util.ads, exp_util.adb (Find_Prim_Op,
5837         Is_Predefined_Primitive_Operation): When
5838         searching for the predefined equality operator, verify that operands
5839         have the same type.
5840         (Is_Predefined_Dispatching_Operation): Remove the code that looks
5841         for the last entity in the list of aliased subprograms. This code
5842         was wrong in case of renamings.
5843         (Set_Renamed_Subprogram): New procedure
5844         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
5845         Exp_Type constant computed when entering this subprogram.
5846         (Known_Null): New function
5847         (OK_To_Do_Constant_Replacement): New function
5848         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
5849         (Side_Effect_Free): An attribute reference 'Input is not free of
5850         side effect, unlike other attributes that are functions. (from code
5851         reading).
5852         (Remove_Side_Effects): Expressions that involve packed arrays or records
5853         are copied at the point of reference, and therefore must be marked as
5854         renamings of objects.
5855         (Is_Predefined_Dispatching_Operation): Return false if the operation is
5856         not a dispatching operation.
5857
5858         PR ada/18819
5859         (Remove_Side_Effects): Lift enclosing type conversion nodes for
5860         elementary types in all cases.
5861
5862 2006-02-13  Javier Miranda  <miranda@adacore.com>
5863
5864         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
5865         task types when accessing to the corresponding record type.
5866         Remove '!' in warning message.
5867
5868 2006-02-13  Olivier Hainque  <hainque@adacore.com>
5869
5870         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
5871         to avoid useless and space inefficient overalignments on targets where
5872         Max_Alignment is larger than 16.
5873
5874 2006-02-13  Pascal Obry  <obry@adacore.com>
5875
5876         * g-catiio.adb (Sec_Number): New type used to compute the number of
5877         seconds since 1-1-1970.
5878         (Image) [Natural]: The parameter was an Integer, as we can't deal with
5879         negative numbers (years, months...) it is better to have a Natural here.
5880         Code clean-up.
5881         (Image) [Number]: Change parameter from Long_Integer to Number.
5882         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
5883         overflow for dates past year 2038.
5884
5885 2006-02-13  Matthew Heaney  <heaney@adacore.com>
5886
5887         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
5888         Constraint_Error.
5889
5890 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
5891
5892         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
5893         native platforms.
5894         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
5895         finalization can occur normally.
5896
5897 2006-02-13  Vincent Celier  <celier@adacore.com>
5898
5899         * gnatcmd.adb (Rules_Switches): New table
5900         (Add_To_Rules_Switches): New procedure
5901         (GNATCmd): For command CHECK, put all options following "-rules" in the
5902         Rules_Switches table. Append these -rules switches after the -cargs
5903         switches.
5904
5905 2006-02-13  Robert Dewar  <dewar@adacore.com>
5906
5907         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
5908         These two cases were generating incorrect output, and if this unit
5909         was built with checks on, generated a discriminant mismatch constraint
5910         error.
5911
5912 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
5913             Robert Dewar  <dewar@adacore.com>
5914
5915         * lib-xref.adb (Get_Type_Reference): For a private type whose full
5916         view is an array type, indicate the component type as well, for
5917         navigation purposes.
5918         (Generate_Reference): Don't consider array ref on LHS to be a case
5919         of violating pragma Unreferenced.
5920         Do not give Ada 2005 warning except on real reference.
5921
5922 2006-02-13  Vincent Celier  <celier@adacore.com>
5923
5924         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
5925         main source, add switch -mdebug-main=_ada_ so that the executable can
5926         be debugged by the standard VMS debugger.
5927         (Gnatmake): Set No_Main_Subprogram to True when there is no main
5928         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
5929         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
5930         of the last source, as the binding and linking phases are never
5931         performed.
5932         Set all executable obsolete when rebuilding a library.
5933
5934         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
5935         options.
5936
5937 2006-02-13  Javier Miranda  <miranda@adacore.com>
5938
5939         PR ada/23973
5940         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
5941         code to improve the error message reported when the program has
5942         declarations of abstract interface types and it is not compiled with
5943         the -gnat05 switch.
5944         (P_Access_Definition): Reorganize the code to improve the error
5945         message reported when the new Ada 2005 syntax for anonymous
5946         access types is used and the program is not compiled with the
5947         -gnat05 switch.
5948
5949 2006-02-13  Robert Dewar  <dewar@adacore.com>
5950
5951         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
5952         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
5953         (MODE_IN)
5954
5955 2006-02-13  Javier Miranda  <miranda@adacore.com>
5956
5957         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
5958         against source containing syntax errors.
5959
5960 2006-02-13  Vincent Celier  <celier@adacore.com>
5961
5962         * prj.adb (Reset): Initialize the first element of table Namings with
5963         the standard naming data.
5964
5965 2006-02-13  Vincent Celier  <celier@adacore.com>
5966
5967         * prj.ads (Error_Warning): New enumeration type
5968
5969         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
5970         unknown, use the location of the project to report the error.
5971         (When_No_Sources): New global variable
5972         (Report_No_Ada_Sources): New procedure
5973         (Check): New parameter When_No_Sources. Set value of global variable
5974         When_No_Sources,
5975         (Find_Sources): Call Report_No_Ada_Sources when appropriate
5976         (Get_Sources_From_File): Ditto
5977         (Warn_If_Not_Sources): Better warning messages indicating the unit name
5978         and the file name.
5979
5980         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
5981         Call Prj.Proc.Process with parameter When_No_Sources.
5982
5983         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
5984         Call Recursive_Check with parameter When_No_Sources.
5985         (Recursive_Check): New parameter When_No_Sources. Call itself and
5986         Prj.Nmsc.Check with parameter When_No_Sources.
5987         (Process): New parameter When_No_Sources. Call Check with parameter
5988         When_No_Sources.
5989         (Copy_Package_Declarations): New procedure to copy renamed parameters
5990         and setting the location of the declared attributes to the location
5991         of the renamed package.
5992         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
5993         packages.
5994
5995 2006-02-13  Vincent Celier  <celier@adacore.com>
5996
5997         * prj-makr.adb (Make): Preserve the comments from the original project
5998         file.
5999         When removing nodes (attributes Source_Dirs, Source_Files,
6000         Source_List_File and package Naming), save the comments and attach the
6001         saved comments to the newly created nodes.
6002         Do not add a with clause for the naming package if one already exists.
6003
6004 2006-02-13  Javier Miranda  <miranda@adacore.com>
6005             Gary Dismukes  <dismukes@adacore.com>
6006             Robert Dewar  <dewar@adacore.com>
6007
6008         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
6009
6010         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
6011         aliased entities to look for the overriden abstract interface
6012         subprogram.
6013         (Is_Interface_Subprogram): Complete documentation.
6014         (Check_Dispatching_Operation): Do not generate code to register the
6015         operation in the dispatch table if the source is compiled with
6016         restriction No_Dispatching_Calls.
6017         (Override_Dispatching_Operation): Check for illegal attempt to override
6018         No_Return procedure with procedure that is not No_Return
6019         (Check_Dispatching_Call): Suppress the check for an abstract operation
6020         when the original node of an actual is a tag-indeterminate attribute
6021         call, since the attribute, which must be 'Input, can never be abstract.
6022         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
6023         call to the Input attribute (even when rewritten).
6024         (Propagate_Tag): Augment comment to indicate the possibility of a call
6025         to an Input attribute.
6026
6027         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
6028         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
6029
6030         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
6031         No_Wide_Characters is no longer partition-wide
6032         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
6033         rather than GNAT
6034
6035 2006-02-13  Douglas Rupp  <rupp@adacore.com>
6036
6037         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
6038
6039 2006-02-13  Javier Miranda  <miranda@adacore.com>
6040
6041         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
6042         handles default-initialized components to keep separate the management
6043         of this feature but also avoid the unrequired resolution and
6044         expansion of components that do not have partially initialized
6045         values.
6046         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
6047         (Check_Bounds): Likewise.
6048         (Check_Length): Likewise.
6049
6050 2006-02-13  Javier Miranda  <miranda@adacore.com>
6051             Ed Schonberg  <schonberg@adacore.com>
6052
6053         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
6054         abstract interface type call analyze_and_resolve to expand the type
6055         conversion into the corresponding displacement of the
6056         reference to the base of the object.
6057         (Eval_Attribute, case Width): For systems where IEEE extended precision
6058         is supported, the maximum exponent occupies 4 decimal digits.
6059         (Accessibility_Message): Add '\' in 2-line warning message.
6060         (Resolve_Attribute): Likewise.
6061         (case Attribute_Access): Significantly revise checks
6062         for illegal access-to-subprogram Access attributes to properly enforce
6063         the rules of 3.10.2(32/2).
6064         Diagnose use of current instance with an illegal attribute.
6065
6066         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
6067         to a Node_Id.
6068         (Enclosing_Generic_Unit): New function to return a node's innermost
6069         enclosing generic declaration node.
6070         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
6071         (Type_Access_Level): The accessibility level of anonymous acccess types
6072         associated with discriminants is that of the current instance of the
6073         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
6074         (Compile_Time_Constraint_Error): Handle case of conditional expression.
6075         (Kill_Current_Values_For_Entity): New function
6076         (Enter_Name): Change formal type to Entity_Id
6077
6078 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
6079             Ed Schonberg  <schonberg@adacore.com>
6080             Gary Dismukes  <dismukes@adacore.com>
6081
6082         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
6083         Analyze_Compilation_Unit.
6084         Detect and warn on redundant with clauses detected in a package spec
6085         and/or body when -gnatwr is used.
6086         (Analyze_Context): Analyze config pragmas before other items
6087         (Install_Context_Items): Don't analyze config pragmas here
6088         (Install_Limited_Withed_Unit): Set limited entity of package in
6089         with_clause so that cross-reference information or warning messages on
6090         unused packages can be properly generated
6091         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
6092         has Error_Posted set. Prevent infinite loops in illegal programs.
6093         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
6094         to the point of the error test requiring the current unit to be private.
6095         This ensures that private with clauses are not exempted from the basic
6096         checking for being a descendant of the same library unit parent as a
6097         withed private descendant unit.
6098         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
6099         handle private with clauses properly, as well as to account for cases
6100         where the withed unit is a public descendant of a private ancestor
6101         (in which case the current unit must be a descendant of the private
6102         ancestor's parent). The spec comments were updated accordingly. Also,
6103         the old error message in this subprogram was replaced with error
6104         messages that mirror the errors tested and reported by
6105         Check_Private_Child_Unit.
6106         Parameter and variable names improved for readability.
6107         (Install_Limited_Context_Clauses): Remove test for a withed unit being
6108         private as the precondition for calling
6109         Check_Private_Limited_Withed_Unit since that subprogram has been
6110         revised to test public units as well as private units.
6111
6112 2006-02-13  Thomas Quinot  <quinot@adacore.com>
6113             Robert Dewar  <dewar@adacore.com>
6114             Ed Schonberg  <schonberg@adacore.com>
6115             Javier Miranda  <miranda@adacore.com>
6116
6117         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
6118         that Scope_Stack.First = 1.
6119         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
6120         were not always properly handled previously.
6121         (Formal_Entity): Complete rewrite, to handle properly some complex case
6122         with multiple levels of parametrization by formal packages.
6123         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
6124         to the corresponding derived type declaration for proper semantics.
6125
6126         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
6127         (Check_Component): Enforce restriction on components of
6128         unchecked_unions: a component in a variant cannot contain tasks or
6129         controlled types.
6130         (Unchecked_Union): Allow nested variants and multiple discriminants, to
6131         conform to AI-216.
6132         Add pragma Ada_2005 (synonym for Ada_05)
6133         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
6134         were not always properly handled previously.
6135         Document that pragma Propagate_Exceptions has no effect
6136         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
6137         (Set_Convention_From_Pragma): Check that if a convention is
6138         specified for a dispatching operation, then it must be
6139         consistent with the existing convention for the operation.
6140         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
6141         longer required to specify an vtable-ptr component in the record. For
6142         compatibility reasons we leave the support for the previous definition.
6143         (Analyze_Pragma, case No_Return): Allow multiple arguments
6144
6145         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
6146         non-overrideen inherited operation with a controlling result as
6147         illegal only its implicit declaration comes from the derived type
6148         declaration of its result's type.
6149         (Check_Possible_Deferred_Completion): Relocate the object definition
6150         node of the subtype indication of a deferred constant completion rather
6151         than directly analyzing it. The analysis of the generated subtype will
6152         correctly decorate the GNAT tree.
6153         (Record_Type_Declaration): Check whether this is a declaration for a
6154         limited derived record before analyzing components.
6155         (Analyze_Component_Declaration): Diagnose record types  not explicitly
6156         declared limited when a component has a limited type.
6157         (Build_Derived_Record_Type): Code reorganization to check if some of
6158         the inherited subprograms of a tagged type cover interface primitives.
6159         This check was missing in case of a full-type associated with a private
6160         type declaration.
6161         (Constant_Redeclaration): Check that the subtypes of the partial and the
6162         full view of a constrained deferred constant statically match.
6163         (Mentions_T): A reference to the current type in an anonymous access
6164         component declaration  must be an entity name.
6165         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
6166         class_wide type to refer to full type, not to the incomplete one.
6167         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
6168         available. Required to give support to the certified run-time.
6169         (Analyze_Component_Declaration): In case of anonymous access components
6170         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
6171         (Process_Discriminants): For an access discriminant, use the
6172         discriminant specification as the associated_node_for_itype, to
6173         simplify accessibility checks.
6174
6175 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
6176             Javier Miranda  <miranda@adacore.com>
6177
6178         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
6179         abstract interpretations on an operator, remove interpretations that
6180         yield Address or a type derived from it, if one of the operands is an
6181         integer literal.
6182         (Try_Object_Operation.Try_Primitive_Operation,
6183         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
6184         location when creating the new reference to a primitive or class-wide
6185         operation as a part of rewriting a subprogram call.
6186         (Try_Primitive_Operations): If context requires a function, collect all
6187         interpretations after the first match, because there may be primitive
6188         operations of the same type with the same profile and different return
6189         types. From code reading.
6190         (Try_Primitive_Operation): Use the node kind to choose the proper
6191         operation when a function and a procedure have the same parameter
6192         profile.
6193         (Complete_Object_Operation): If formal is an access parameter and prefix
6194         is an object, rewrite as an Access reference, to match signature of
6195         primitive operation.
6196         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
6197         by an expanded name with prefix Standard, when the operands are of an
6198         anonymous access type.
6199         (Remove_Abstract_Operations): If the operation is abstract because it is
6200         inherited by a user-defined type derived from Address, remove it as
6201         well from the set of candidate interpretations of an overloaded node.
6202         (Analyze_Membership_Op): Membership test not applicable to cpp-class
6203         types.
6204
6205 2006-02-13  Bob Duff  <duff@adacore.com>
6206
6207         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
6208         redundant use clauses.
6209         In particular, if the scope of two use clauses overlaps, but one is not
6210         entirely included in the other, we should not warn.  This can happen
6211         with nested packages.
6212         (Analyze_Subprogram_Renaming): Protect the compiler against previously
6213         reported errors. The bug was reported when the compiler was built
6214         with assertions enabled.
6215         (Find_Type): If the node is a 'Class reference and the prefix is a
6216         synchronized type without a corresponding record, return the type
6217         itself.
6218
6219 2006-02-13  Javier Miranda  <miranda@adacore.com>
6220
6221         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
6222         if this is the full-declaration associated with a private declaration
6223         that implement interfaces, then the private type declaration must be
6224         limited.
6225         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
6226         as aliased. The use of the 'access attribute is not available for such
6227         object (for this purpose the object should be explicitly marked as
6228         aliased, but being an anonymous type this is not possible).
6229
6230 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
6231             Robert Dewar  <dewar@adacore.com>
6232
6233         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
6234         compilation unit is an elaboration scope.
6235         (Add_Task_Proc): Add '\' in 2-line warning message.
6236         (Activate_All_Desirable): Deal with case of unit with'ed by parent
6237
6238 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
6239             Javier Miranda  <miranda@adacore.com>
6240
6241         * sem_type.adb (Write_Overloads): Improve display of candidate
6242         interpretations.
6243         (Add_One_Interp): Do not add to the list of interpretations aliased
6244         entities corresponding with an abstract interface type that is an
6245         immediate ancestor of a tagged type; otherwise we have a dummy
6246         conflict between this entity and the aliased entity.
6247         (Disambiguate): The predefined equality on universal_access is not
6248         usable if there is a user-defined equality with the proper signature,
6249         declared in the same declarative part as the designated type.
6250         (Find_Unique_Type): The universal_access equality operator defined under
6251         AI-230 does not cover pool specific access types.
6252         (Covers): If one of the types is a generic actual subtype, check whether
6253         it matches the partial view of the other type.
6254
6255 2006-02-13  Thomas Quinot  <quinot@adacore.com>
6256
6257         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
6258         line. This is necessary to allow In_Extended_Main_Unit to provide
6259         correct results for itypes while writing out expanded source.
6260         (Close_File): No need to update the source_index_table here since it's
6261         now done for each line.
6262
6263 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
6264             Robert Dewar  <dewar@adacore.com>
6265
6266         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
6267         preserve the source unit where the itype is declared, and prevent a
6268         backend abort.
6269         (Note_Implicit_Run_Time_Call): New procedure
6270         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
6271         E_Subprogram_Type)
6272
6273         * sprint.ads: Document use of $ for implicit run time routine call
6274
6275 2006-02-13  Quentin Ochem  <ochem@adacore.com>
6276
6277         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
6278         task name.
6279
6280 2006-02-13  Bob Duff  <duff@adacore.com>
6281
6282         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
6283         Scan_Unsigned, so we do not scan leading blanks and sign twice.
6284         Integer'Value("- 5") and Integer'Value("-+5") now correctly
6285         raise Constraint_Error.
6286
6287         * s-vallli.adb (Scan_Long_Long_Integer): Call
6288         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
6289         do not scan leading blanks and sign twice.
6290         Integer'Value("- 5") and Integer'Value("-+5") now correctly
6291         raise Constraint_Error.
6292
6293         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
6294         Scan_Long_Long_Unsigned): Split out most of the processing from
6295         Scan_Long_Long_Unsigned out into
6296         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
6297         This prevents scanning leading blanks and sign twice.
6298         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
6299         See RM-3.5(44).
6300
6301         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
6302         out most of the processing from Scan_Unsigned out into
6303         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
6304         This prevents scanning leading blanks and sign twice.
6305
6306         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
6307         use with Modular'Value attribute.
6308         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
6309         attribute.
6310
6311 2006-02-13  Robert Dewar  <dewar@adacore.com>
6312
6313         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
6314
6315 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
6316
6317         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
6318         (PPC VxWorks): Likewise.
6319         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
6320         (forced_callee): Make non-inlinable and non-pure.
6321         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
6322
6323 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
6324             Ben Brosgol  <brosgol@adacore.com>
6325             Robert Dewar  <dewar@adacore.com>
6326
6327         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
6328         support.
6329         Document that gnatbind -M option is for cross environments only.
6330         Added description of using gnatmem to trace gnat rtl allocs and deallocs
6331         Add note on use of $ to label implicit run time calls
6332         Add documentation for -gnatyI (check mode IN)
6333         Updated chapter on compatibility with HP Ada
6334         VMS-oriented edits.
6335         Ran spell and corrected errors
6336         Add documentation for gnatbind -d and rework documentation of -D
6337         at the same time.
6338         Add subprogram/data elimination section.
6339         Minor editing of annex A.
6340         Add section for gnatcheck.
6341         Add documentation for restriction No_Dispatching_Calls
6342         Add documentation for pragma Ada_2005
6343         Remove mention of obsolete pragma Propagate_Exceptions
6344         Document that pragma Unreferenced can appear after DO in ACCEPT
6345         Clarify Pure_Function for library level units
6346         Mention Max/Min in connection with No_Implicit_Conditionals
6347         No_Wide_Characters restriction is no longer partition-wide
6348         Add a nice example for Universal_Literal_String attribute
6349         Document that pragma No_Return can take multiple arguments
6350
6351         * ug_words: Added entry for gnatcheck
6352
6353         * g-ctrl_c.ads (Install_Handler): Enhance comments
6354
6355         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
6356
6357         * g-trasym.ads: Add documentation on how to do off line symbolic
6358         traceback computation.
6359
6360         * s-fatgen.adb: Add comments for Unaligned_Valid
6361
6362         * stand.ads: Fix typo in comment
6363
6364 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6365
6366         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
6367
6368 2006-02-06  Roger Sayle  <roger@eyesopen.com>
6369
6370         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
6371
6372 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6373
6374         PR target/25926
6375         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
6376         implementation that calls __main.
6377
6378 2006-01-25  Peter O'Gorman  <peter@pogma.com>
6379
6380         PR bootstrap/25859
6381         * Makefile.in (GCC_LINK): Remove quotes.
6382         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
6383         or $(GCC_LINK).
6384
6385         (powerpc-darwin): Pass -shared-libgcc when building shared library.
6386
6387 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6388
6389         PR ada/24533
6390         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
6391
6392 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6393
6394         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
6395
6396 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
6397
6398         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
6399         needed.
6400
6401 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
6402
6403         * Make-lang.in: Update dependencies
6404
6405 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
6406
6407         * Make-lang.in: Add rule for ada/exp_sel.o
6408
6409 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
6410
6411         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
6412
6413 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
6414
6415         * gnatvsn.ads (Library_Version): Bump to version 4.2
6416         (ASIS_Version_Number): Bumped.
6417
6418 2005-12-09  Doug Rupp  <rupp@adacore.com>
6419
6420         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
6421         Ada bind file prefix on VMS from b$ to b__.
6422         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
6423         __init.
6424
6425         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
6426         Targparm.OpenVMS_On_Target.
6427         (Object_Suffix): Initialize with target object suffix.
6428         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
6429
6430         * butil.adb: Change some Hostparm.OpenVMS checks to
6431         Targparm.OpenVMS_On_Target.
6432
6433         * clean.adb: Change some Hostparm.OpenVMS checks to
6434         Targparm.OpenVMS_On_Target.
6435         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
6436         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
6437         Ada bind file prefix on VMS from b$ to b__.
6438
6439         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
6440         --GCC so that Get_Target_Parameters can find system.ads.
6441         (Gnatlink): Call Get_Target_Parameters in mainline.
6442         Initialize standard packages for Targparm.
6443         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
6444         (Process_Args): Also Check for object files with target object
6445         extension.
6446         (Make_Binder_File_Names): Create with target object extension.
6447         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
6448         to b__.
6449
6450         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
6451         Targparm.OpenVMS_On_Target.
6452         ({declaration},Build_Library,Check_Library): Change Ada bind file
6453         prefix on VMS from b$ to b__.
6454
6455         * osint-b.adb: Change some Hostparm.OpenVMS checks to
6456         Targparm.OpenVMS_On_Target.
6457         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
6458         b__.
6459
6460         * targext.c: New file.
6461
6462         * Makefile.in: add support for vxworks653 builds
6463         (../../vxaddr2line): gnatlink with targext.o.
6464         (TOOLS_LIBS): Move targext.o to precede libgnat.
6465         (init.o, initialize.o): Minor clean up in dependencies.
6466         (GNATLINK_OBJS): Add targparm.o, snames.o
6467         Add rules fo building targext.o and linking it explicitly with all
6468         tools.
6469         Also add targext.o to gnatlib.
6470
6471         * Make-lang.in: Add rules for building targext.o and linking it in
6472         with gnat1 and gnatbind.
6473         Add entry for exp_sel.o.
6474
6475         * osint.adb Change some Hostparm.OpenVMS checks to
6476         Targparm.OpenVMS_On_Target.
6477         (Object_File_Name): Use target object suffix.
6478
6479         * osint.ads (Object_Suffix): Remove, no longer used.
6480         (Target_Object_Suffix): Initialize with target object suffix.
6481
6482         * rident.ads: Add special exception to license.
6483
6484         * targparm.adb (Get_Target_Parameters): Set the value of
6485         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
6486         value.
6487         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
6488         
6489         * targparm.ads: Add special exception to license.
6490
6491         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
6492         function.
6493         (Copy_File): Make sure from file is closed if error on to file
6494         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
6495
6496         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
6497         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
6498
6499         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
6500         target object suffix.
6501
6502 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
6503             Quentin Ochem  <ochem@adacore.com>
6504             Florian Villoing  <villoing@adacore.com>
6505
6506         * a-taster.ads, a-taster.adb: New files.
6507
6508         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
6509         link to the version that does nothing. This way the task termination
6510         routine is not executed twice for the environment task when finishing
6511         because of an unhandled exception.
6512
6513         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
6514         handler because of an unhandled exception.
6515
6516         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
6517         System.Tasking.Utilities instead of that in System.Tasking.Stages.
6518
6519         * s-finimp.adb (initialization code): Modify the soft link for the
6520         finalization of the global list instead of Adafinal.
6521
6522         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
6523         non-tasking version of the soft link for task termination. We do
6524         nothing since if we are using the non-tasking version it
6525         means that the task termination functionality is not used.
6526         (Null_Finalize_Global_List): Add this null version for the procedure
6527         in charge of finalizing the global list for controlled objects.
6528         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
6529         instead for handling run-time termination in a more flexible way.
6530         (Adafinal_NT): This new procedure will take care of finalizing the
6531         global list for controlled objects if needed, but no tasking
6532         finalization.
6533
6534         * s-tarest.adb (Task_Lock): Do not try to lock again the
6535         Global_Task_Lock if we already own it. Otherwise, we get blocked in
6536         some run-time operations.
6537         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
6538         until all nested locks have been released.
6539         (Task_Wrapper): Call the fall-back task termination handler. It
6540         applies to all tasks but the environment task.
6541         (Finalize_Global_Tasks): Add the call for the task termination
6542         procedure for the environment task.
6543         (Task_Wrapper): suppress warnings around declaration of
6544         Secondary_Stack_Address.
6545
6546         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
6547         moved to the Common_ATCB record.
6548         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
6549         Common_ATCB record.
6550         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
6551         Common_ATCB record.
6552
6553         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
6554         Fall_Back_Handler, and Specific_Handler.
6555
6556         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
6557         defined in Ada.Task_Termination, to avoid circular dependencies.
6558         (Termination_Handler): Redefine this type here, alredy defined in
6559         Ada.Task_Termination, for avoiding circular dependencies.
6560         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
6561         for storing task termination handlers. In addition,
6562         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
6563         Common_ATCB because it is used by both the regular and the restricted
6564         run times.
6565         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
6566         Common_ATCB because it is used by both the regular and the restricted
6567         run times.
6568         (Common_ATCB): Added a dynamic task analyzer field.
6569
6570         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
6571         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
6572         (Task_Wrapper): Call the task termination handler. It applies to all
6573         tasks but the environment task.
6574         (Finalize_Global_Tasks): Call the task termination procedure for the
6575         environment task. The call to Finalize_Global_List is now performed
6576         using the soft links mechanism.
6577         (Task_Wrapper): added dynamic stack analysis.
6578
6579         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
6580         potentially blocking operations has been moved from
6581         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
6582         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
6583         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
6584         this run-time check.
6585
6586         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
6587         of task termination procedure.
6588         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
6589         link for the task termination procedure.
6590
6591         * bindusg.adb: (Bindusg): Added documentation for -u option.
6592
6593         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
6594         (Get_Main_C): Add handling of dynamic stack analysis.
6595         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
6596
6597         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
6598         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
6599         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
6600
6601         * opt.ads: Added flags used by dynamic stack measurement.
6602         (Max_Line_Length): Remove (not used anymore)
6603
6604         * s-io.ads, s-io.adb (Standard_Error): new subprogram
6605         (Standart_Output): new subprogram
6606         (Set_Output): new subprogram
6607         (Put): now uses the value of Current_Out to know if the output has to be
6608         send to stderr or stdout.
6609         
6610         * s-stausa.ads: Complete implementation.
6611
6612         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
6613         
6614         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
6615         list of Ada 05 files.
6616         (GNAT Library Units): Add AltiVec files.
6617
6618         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
6619         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
6620         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
6621
6622 2005-12-09  Nicolas Setton  <setton@adacore.com>
6623
6624         * adaint.c (__gnat_locate_regular_file): Return immediately if
6625         file_name is empty.
6626
6627 2005-12-09  Javier Miranda  <miranda@adacore.com>
6628             Hristian Kirtchev  <kirtchev@adacore.com>
6629
6630         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
6631         to the specification because the frontend generates code that uses this
6632         subprogram.
6633         (Set_Interface_Table): Add missing assertion.
6634         Update documentation describing the run-time structure.
6635         (Displace): New subprogram that displaces the pointer to the object
6636         to reference one of its secondary dispatch tables.
6637         (IW_Membership): Modified to use the new table of interfaces.
6638         (Inherit_TSD): Modified to use the new table of interfaces.
6639         (Register_Interface_Tag): Use the additional formal to fill the
6640         contents of the new table of interfaces.
6641         (Set_Interface_Table): New subprogram that stores in the TSD the
6642         pointer to the table of interfaces.
6643         (Set_Offset_To_Top): Use the additional formal to save copy of
6644         the offset value in the table of interfaces.
6645         Update structure of GNAT Primary and Secondary dispatch table diagram.
6646         Add comment section on GNAT dispatch table prologue.
6647         (Offset_To_Signature): Update the constant value of the Signature field.
6648         (Dispatch_Table): Update comment on hidden fields in the prologue.
6649         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
6650         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
6651         the type of formal parameter T to Tag, introduce additional assertions.
6652         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
6653         conversion.
6654         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
6655
6656         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
6657         in all the calls to Expand_Interface_Thunk. Instead of referencing the
6658         record component containing the tag of the secondary dispatch table we
6659         have to use the Offset_To_Top run-time function to get this information;
6660         otherwise if the pointer to the base of the object has been displace
6661         we get a wrong value if we use the 'position attribute.
6662
6663         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
6664         all the calls to Expand_Interface_Thunk.
6665         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
6666         interfaces; hence the call to Set_Interface_Table was clearly wrong.
6667         (Collect_All_Interfaces): Modify the internal subprogram Collect to
6668         ensure that the interfaces implemented by the ancestors are placed
6669         at the header of the generated list.
6670         (Expand_Interface_Conversion): Handle the case in which the displacement
6671         associated with the interface conversion is not statically known. In
6672         this case we generate a call to the new run-time subprogram Displace.
6673         (Make_DT): Generate and fill the new table of interfaces.
6674         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
6675         Get_Tagged_Kind and Set_Tagged_Kind.
6676         (Tagged_Kind): New function that determines the tagged kind of a type
6677         with respect to limitedness and concurrency and returns a reference to
6678         RE_Tagged_Kind.
6679         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
6680         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
6681         primary dispatch table for a type.
6682         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
6683         secondary dispatch table respectively of a tagged type.
6684
6685         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
6686         (Expand_Interface_Conversion): New subprogram to indicate if the
6687         displacement of the type conversion is statically known.
6688         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
6689
6690         * rtsfind.ads (RE_Offset_To_Top): New entity
6691         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
6692         accessible to users.
6693         (Re_Displace): New entity
6694         (RE_Interface_Data): New entity
6695         (RE_Set_Interface_Data): New_Entity
6696         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
6697         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
6698         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
6699         RE_TK_Tagged, RE_TK_Task.
6700
6701         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
6702         Init_Secondary_Tags_Internal to allow its use with interface types and
6703         also to generate the code for the new additional actual required
6704         by Set_Offset_To_Top.
6705         (Build_Init_Statements): In case of components associated with abstract
6706         interface types there is no need to generate a call to its IP.
6707         (Freeze_Record_Type): Generate Select Specific Data tables only for
6708         concurrent types.
6709         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
6710         the bodies and specifications of the predefined primitive operations
6711         dealing with dispatching selects and abort, 'Callable, 'Terminated only
6712         for concurrent types.
6713
6714         * exp_sel.ads, exp_sel.adb: New files.
6715
6716         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
6717         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
6718         properly protected objects and attach handler in the case of the
6719         restricted profile.
6720         Move embeded package Select_Expansion_Utilities into a separate external
6721         package.
6722         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
6723         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
6724         (Build_K, Build_S_Assignment): New subprograms, part of the select
6725         expansion utilities.
6726         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
6727         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
6728         where the trigger is a dispatching procedure of a limited tagged type.
6729
6730 2005-12-09  Olivier Hainque  <hainque@adacore.com>
6731
6732         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
6733         pointer initialization values. Make a SAVE_EXPR instead. Add comments
6734         about the use and expansion of SAVE_EXPRs in the various possible
6735         renaming handling cases.
6736         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
6737         abusing DECL_FCONTEXT.
6738
6739 2005-12-09  Matthew Heaney  <heaney@adacore.com>
6740
6741         * a-convec.adb (Merge): Added assertions to check whether vector params
6742         are sorted.
6743
6744         * a-coinve.adb (Merge): Added assertions to check whether vector params
6745         are sorted.
6746
6747         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
6748         draft.
6749         (Cursor'Read): raises PE
6750
6751         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
6752         to its default value.
6753
6754         * a-cihama.adb: Manually check whether cursor's key and elem are
6755         non-null
6756
6757         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
6758         (Merge): Assert that target and source lists are in order
6759         (Swap): Declare non-const temporaries, to pass to Splice
6760
6761         * a-cdlili.ads: (Splice): Changed param name and param mode
6762
6763         * a-cdlili.adb: (Splice): Changed param name and param mode
6764         (Merge): Assert that target and source lists are in order
6765         (Swap): Declare non-const temporaries, to pass to Splice
6766
6767         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
6768         (Write): declare Stream param as not null
6769
6770         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
6771         an exception message.
6772
6773 2005-12-09  Thomas Quinot  <quinot@adacore.com>
6774             Robert Dewar  <dewar@adacore.com>
6775
6776         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
6777         which is the absolute maximum length we can support.
6778
6779         * frontend.adb: For the processing of configuration pragma files,
6780         remove references to Opt.Max_Line_Length, which is not checked anymore.
6781
6782         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
6783         length.
6784
6785         * scn.adb, scng.adb: 
6786         Always check line length against the absolute supported maximum,
6787         Hostparm.Max_Line_Length.
6788
6789         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
6790         value for the maximum line length is Max_Line_Length (not
6791         Column_Number'Last).
6792         Minor error msg update
6793         (Set_Style_Check_Options): New interface returning error msg
6794         Minor code reorganization (processing for 'M' was out of alpha order)
6795
6796         * switch-c.adb: New interface for Set_Style_Check_Options
6797
6798         * stylesw.ads (Set_Style_Check_Options): New interface returning error
6799         msg.
6800
6801 2005-12-09  Javier Miranda  <miranda@adacore.com>
6802
6803         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
6804         with IP subprogram were only supported if there were limited types.
6805
6806         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
6807         records with IP subprogram were only supported if there were limited
6808         types.
6809
6810 2005-12-09  Olivier Hainque  <hainque@adacore.com>
6811             Eric Botcazou  <ebotcazou@adacore.com>
6812
6813         * trans.c (tree_transform, emit_check): Adjust calls to
6814         build_call_raise, passing the now expected GNAT_NODE argument.
6815
6816         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
6817         source line information than what the current global locus indicates
6818         when appropriate.
6819
6820         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
6821         field has overflowed.
6822         (build_call_raise): Add a GNAT_NODE argument to convey better source
6823         line information than what the current global locus indicates when
6824         appropriate.
6825         (build_component_ref): Adjust call to build_call_raise.
6826
6827 2005-12-09  Pascal Obry  <obry@adacore.com>
6828
6829         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
6830         the iterator is quitting iteration on parent directory.
6831
6832 2005-12-09  Javier Miranda  <miranda@adacore.com>
6833
6834         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
6835         and the assignment to a class-wide object, before the assignment we
6836         generate a run-time check to ensure that the tag of the Target is
6837         covered by the tag of the source.
6838
6839 2005-12-09  Robert Dewar  <dewar@adacore.com>
6840
6841         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
6842         parameter in call to Image_Wide_Character.
6843
6844         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
6845         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
6846         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
6847         annoying FFFE/FFFF inconsistency.
6848
6849 2005-12-09  Robert Dewar  <dewar@adacore.com>
6850             Javier Miranda  <miranda@adacore.com>
6851             Ed Schonberg  <schonberg@adacore.com>
6852
6853         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
6854         of type conversion.
6855         (Find_Interface): New subprogram that given a tagged type and one of its
6856         component associated with the secondary table of an abstract interface
6857         type, return the entity associated with such abstract interface type.
6858         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
6859         base type to create anonymous subtype, because entity may be a locally
6860         declared subtype or generic actual.
6861         (Find_Interface): New subprogram that given a tagged type and one of its
6862         component associated with the secondary table of an abstract interface
6863         type, return the entity associated with such abstract interface type.
6864
6865         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
6866         conversion cannot be handled at compile time. In this case we pass this
6867         information to the expander to generate the appropriate code.
6868
6869 2005-12-09  Robert Dewar  <dewar@adacore.com>
6870             Ed Schonberg  <schonberg@adacore.com>
6871             Gary Dismukes  <dismukes@adacore.com>
6872             Javier Miranda  <miranda@adacore.com>
6873             Hristian Kirtchev  <kirtchev@adacore.com>
6874
6875         * einfo.adb (Itype_Printed): New flag
6876         (Is_Limited_Type): Derived types do not inherit limitedness from
6877         interface progenitors.
6878         (Is_Return_By_Reference_Type): Predicate does not apply to limited
6879         interfaces.
6880
6881         * einfo.ads (Itype_Printed): New flag
6882         Move Is_Wrapper_Package to proper section
6883         Add missing Inline for Is_Volatile
6884
6885         * output.ads, output.adb (Write_Erase_Char): New procedure
6886         (Save/Restore_Output_Buffer): New procedures
6887         (Save/Restore_Output_Buffer): New procedures
6888
6889         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
6890         Add missing support for anonymous access type
6891         (Write_Id): Insert calls to Write_Itype
6892         (Write_Itype): New procedure to output itypes
6893
6894         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
6895         use of "limited" in declaration.
6896
6897         * sinfo.ads, sinfo.adb: 
6898         Formal derived types can carry an explicit "limited" indication.
6899
6900         * sem_ch3.adb: Add with and use of Targparm.
6901         (Create_Component): If Frontend_Layout_On_Target is True and the
6902         copied component does not have a known static Esize, then reset
6903         the size and positional fields of the new component.
6904         (Analyze_Component_Declaration): A limited component is
6905         legal within a protected type that implements an interface.
6906         (Collect_Interfaces): Do not add to the list the interfaces that
6907         are implemented by the ancestors.
6908         (Derived_Type_Declaration): If the parent of the full-view is an
6909         interface perform a transformation of the tree to ensure that it has
6910         the same parent than the partial-view. This simplifies the job of the
6911         expander in order to generate the correct object layout, and it is
6912         needed because the list of interfaces of the full-view can be given in
6913         any order.
6914         (Process_Full_View): The parent of the full-view does not need to be
6915         a descendant of the parent of the partial view if both parents are
6916         interfaces.
6917         (Analyze_Private_Extension_Declaration): If declaration has an explicit
6918         "limited" the parent must be a limited type.
6919         (Build_Derived_Record_Type): A derived type that is explicitly limited
6920         must have limited ancestor and progenitors.
6921         (Build_Derived_Type): Ditto.
6922         (Process_Full_View): Verify that explicit uses of "limited" in partial
6923         and full declarations are consistent.
6924         (Find_Ancestor_Interface): Remove function.
6925         (Collect_Implemented_Interfaces): New procedure used to gather all
6926         implemented interfaces by a type.
6927         (Contain_Interface): New function used to check whether an interface is
6928         present in a list.
6929         (Find_Hidden_Interface): New function used to determine whether two
6930         lists of interfaces constitute a set equality. If not, the first
6931         differing interface is returned.
6932         (Process_Full_View): Improve the check for the "no hidden interface"
6933         rule as defined by AI-396.
6934
6935 2005-12-09  Robert Dewar  <dewar@adacore.com>
6936
6937         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
6938         types, not on record subtypes.
6939         (Freeze_Entity): Code cleanup. Add barrier to the loop
6940         that generates the references for primitive operations. This allows to
6941         remove an unnecessary exception handler.
6942         Code reformatting and comment clean ups.
6943
6944 2005-12-09  Vincent Celier  <celier@adacore.com>
6945
6946         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
6947         If GNAT CHECK is called with a project file, but with no
6948         source on the command line, call gnatcheck with all the compilable
6949         sources of the project.
6950         Take into account the new command Check, for gnatcheck. Treat as for
6951         other ASIS tools: take into account project, specific package Check and
6952         Compiler switches.
6953         For ASIS tools, add the switches in package Compiler for
6954         the invocation of the compiler.
6955
6956         * prj-attr.adb: Add package Check and its attributes
6957
6958         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
6959
6960         * vms_conv.adb (Initialize): Change Params of command Check to
6961         unlimited files.
6962         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
6963         Add data for new command Check
6964
6965         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
6966         ELIM.
6967         Add qualifiers for Check command options
6968         (Command_Type): New command Check
6969
6970 2005-12-09  Thomas Quinot  <quinot@adacore.com>
6971
6972         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
6973         command line switch overruns the output buffer.
6974
6975 2005-12-09  Robert Dewar  <dewar@adacore.com>
6976
6977         * sem_prag.adb: Processing for new pragma Complete_Representation
6978         (Analyze_Pragma, case Debug): Implement two argument form.
6979
6980         * par-prag.adb: Entry for new pragma Complete_Representation
6981         (Prag, case Debug): Recognize two argument form of pragma Debug
6982         New interface for Set_Style_Check_Options.
6983
6984         * sem_ch13.adb: Implement new pragma Complete_Representation.
6985
6986         * snames.adb, snames.ads, snames.h: Entry for new pragma
6987         Complete_Representation.
6988
6989 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
6990
6991         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
6992         available user-specified stream attributes on limited parameters to
6993         also test the type directly rather than only its underlying type (for
6994         Ada 95) and, in the case of Ada 2005, to check that the user-specified
6995         attributes are visible at the point of the subprogram declaration.
6996         For Ada 2005, the error message is modified to indicate that the
6997         type's stream attributes must be visible (again, only for -gnat05).
6998
6999 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
7000
7001         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
7002         anonymous access types.
7003
7004         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
7005         matching of anonymous access types and anonymous access to subprogram
7006         types. 'R'M 4.9.1 (2/2).
7007
7008 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
7009
7010         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
7011         rule prematurely when operands are universal, remaining ambiguities
7012         will be removed during resolution.
7013         Code cleanup.
7014
7015         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
7016         that are Ada 2005 functions.
7017         (Has_Abstract_Interpretation): Subsidiary to
7018         Remove_Conversions, to remove ambiguities caused by abstract operations
7019         on numeric types when operands are universal.
7020
7021 2005-12-09  Robert Dewar  <dewar@adacore.com>
7022
7023         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
7024         for case where spec is categorized.
7025
7026 2005-12-09  Javier Miranda  <miranda@adacore.com>
7027
7028         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
7029         types use the corresponding record type. This was not needed before
7030         the implementation of Ada 2005 synchronized types because
7031         concurrent types were never tagged types in Ada 95.
7032
7033 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
7034
7035         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
7036         first subtype of the type of the expression to verify that it is a
7037         legal Time type.
7038
7039 2005-12-09  Robert Dewar  <dewar@adacore.com>
7040
7041         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
7042         decoded names.
7043
7044 2005-12-09  Quentin Ochem  <ochem@adacore.com>
7045             Robert Dewar  <dewar@adacore.com>
7046             Ed Falis  <falis@adacore.com>
7047             Florian Villoing  <villoing@adacore.com>
7048             Thomas Quinot  <quinot@adacore.com>
7049             Arnaud Charlet  <charlet@adacore.com>
7050
7051         * gnat_ugn.texi: Created section "Stack Related Tools"
7052         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
7053         "Stack Related Tools"
7054         Added subsection "Static Stack Usage Analysis"
7055         Added subsection "Dynamic Stack Usage Analysis"
7056         Include documentation of itypes in sprint listing (-gnatG)
7057         Documented gnatbind -D switch (default sec stack size for fixed sec
7058         stacks).
7059         Added Interrupt_State and Persistent_BSS to list of configuration
7060         pragmas.
7061         Add missing doc for maximum value of nnn in -gnatyMnnn
7062
7063         * gnat_rm.texi: Document the AltiVec binding.
7064         Add documentation for pragma Complete_Representation
7065         Shortened an overly long line (> 79 chars)
7066         Clarify documentation of unchecked conversion in implementation
7067         defined cases.
7068         Document two argument form of pragma Debug
7069
7070         * types.ads (Column_Number): Update documentation.
7071
7072         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
7073         library level Finalize_Storage_Only objects (these are not attached to
7074         any finalization list).
7075
7076         * system-mingw.ads: (Underlying_Priorities): Update comment.
7077
7078 2005-12-09  Robert Dewar  <dewar@adacore.com>
7079
7080         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
7081         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
7082         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
7083         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
7084         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
7085         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
7086         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
7087         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
7088         reformatting.
7089
7090 2005-12-09  Robert Dewar  <dewar@adacore.com>
7091
7092         * s-vaflop-vms-alpha.adb: (Ne_F): New function
7093         (Ne_G): New function
7094
7095         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
7096         for tag assignment.
7097         (Rewrite_Comparison): Handle case where operation is not a comparison
7098         and ignore, and also handle type conversion case.
7099
7100 2005-12-09  Thomas Quinot  <quinot@adacore.com>
7101
7102         * exp_aggr.ads: Fix typo in comment.
7103         ???-mark Convert_Aggr_In_Assignment as needing documentation.
7104
7105 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
7106
7107         * layout.adb: Replace various uses of byte by storage unit throughout.
7108         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
7109         static size, convert to storage units before returning, to conform to
7110         spec.
7111
7112 2005-12-09  Matthew Gingell  <gingell@adacore.com>
7113
7114         * g-exctra.ads: Fix typo in comment.
7115
7116 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7117
7118         * utils.c: Minor reformatting.
7119
7120 2005-12-09  Robert Dewar  <dewar@adacore.com>
7121
7122         * g-soccon.ads: 
7123         Further comment fixes to make the status of the default file clear
7124
7125         * s-bitops.adb: Clarify comment for Bits_Array
7126
7127 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
7128
7129         * Make-lang.in (ada.install-normal): Remove.
7130
7131 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
7132
7133         * Make-lang.in: Remove all dependencies on s-gtype.
7134
7135 2005-12-05  Richard Guenther  <rguenther@suse.de>
7136
7137         * utils.c (convert): Use fold_convert where appropriate.
7138
7139 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
7140
7141         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
7142         a period is meant.
7143
7144 2005-12-02  Richard Guenther  <rguenther@suse.de>
7145
7146         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
7147
7148 2005-12-01  Roger Sayle  <roger@eyesopen.com>
7149
7150         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
7151         nodes.
7152
7153 2005-11-23  Laurent GUERBY  <laurent@guerby.net>
7154
7155         * mlib-prj.adb (Build_Library): Initialize Delete.
7156
7157 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
7158
7159         * socket.c: Add extern int h_errno for rtems since networking header
7160         files are not available at this point in a tool bootstrap. Newlib
7161         only has basic C library header files.
7162
7163 2005-11-19  Richard Guenther  <rguenther@suse.de>
7164         Roger Sayle  <roger@eyesopen.com>
7165
7166         PR ada/23717
7167         * misc.c (internal_error_function): Don't use vsprintf to format
7168         the error message text, instead use pp_format_text and the new
7169         pretty printer APIs.  This allows handling of %qs, %w, etc.
7170
7171 2005-11-18  Laurent GUERBY  <laurent@guerby.net>
7172
7173         PR ada/24857
7174         * Makefile.in: Use s-auxdec-empty for RTEMS.
7175
7176 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7177
7178         PR ada/22333
7179         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
7180         a temporary if taking the address of something that is neither
7181         reference, declaration, or constant, since the gimplifier
7182         can't handle that case.
7183
7184 2005-11-17  Laurent GUERBY  <laurent@guerby.net>
7185
7186         PR ada/24857
7187         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
7188
7189 2005-11-16  Richard Guenther  <rguenther@suse.de>
7190
7191         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
7192
7193 2005-11-16  Joel Sherrill <joel.sherrill@oarcorp.com>
7194
7195         PR ada/24855
7196         * raise-gcc.c: Add missing stdarg.h include.
7197  
7198 2005-11-16  Richard Guenther  <rguenther@suse.de>
7199
7200         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
7201         (ada/misc.o): Likewise.
7202
7203 2005-11-14  Thomas Quinot  <quinot@adacore.com>
7204
7205         * g-soccon.ads: Minor reformatting. Update comments.
7206
7207         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
7208         gain visibility on the declaration of struct timeval.
7209
7210         * g-soccon-freebsd.ads,
7211         g-soccon-darwin.ads,
7212         g-soccon-tru64.ads,
7213         g-soccon-aix.ads,
7214         g-soccon-irix.ads,
7215         g-soccon-hpux.ads,
7216         g-soccon-solaris.ads,
7217         g-soccon-vms.ads,
7218         g-soccon-mingw.ads,
7219         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
7220
7221         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
7222         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
7223         g-soccon-linux-x86.ads: New files.
7224
7225         * g-socthi-mingw.adb: 
7226         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
7227
7228         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
7229         (time_t, suseconds_t): New types constructed to match the tv_sec
7230         and tv_usec fields of C struct timeval.
7231         (Timeval): Construct structure in terms of the new types.
7232         (Host_Errno): New function (imported from socket.c), returns last hosts
7233         database error.
7234
7235         * g-socthi-vxworks.adb:  Add error handling circuitry.
7236
7237         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
7238         components of struct timeval.
7239         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
7240         (Check_Selector): In error conditions, clear internal socket sets to
7241         avoid a memory leak.
7242         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
7243         Send_Timeout, Receive_Timeout.
7244
7245         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
7246         the tv_sec and tv_usec fields of C struct timeval.
7247         (Timeval): Construct structure in terms of the new types.
7248         (Host_Errno): New function (imported from socket.c), returns last hosts
7249         database error.
7250
7251         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
7252         hosts database last error code.
7253
7254         * gen-soccon.c: Complete value expansion should not be performed on
7255         TARGET, as it has the form of a math expression, and some components
7256         may be platform-defined macros.
7257         For VxWorks, generate the OK and ERROR values.
7258         New constants giving the sizes of the components of C struct timeval.
7259
7260 2005-11-14  Robert Dewar  <dewar@adacore.com>
7261             Ed Schonberg  <schonberg@adacore.com>
7262
7263         PR ada/18434
7264         * types.ads: Include All_Checks in Suppress_Array
7265
7266         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
7267         not(a=b), since we no longer do this rewriting, and hence it is not
7268         needed.
7269         (Elaboration_Checks_Suppressed): Add special casing to
7270         deal with different cases of static and dynamic elaboration checks (all
7271         checks does not count in the first case, but does in the second).
7272         (Expr_Known_Valid): Do not assume that the result of any arbitrary
7273         function call is valid, since this is not the case.
7274         (Ensure_Valid): Do not apply validity check to a real literal
7275         in a universal or fixed context
7276
7277         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
7278         elementary types using the operator in standard. It is cleaner not to
7279         modify the programmers intent, especially in the case of floating-point.
7280         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
7281         it did not matter because we always rewrote a/=b to not(a=b).
7282         (Expand_Allocator_Expression): For an allocator expression whose nominal
7283         subtype is an unconstrained packed type, convert the expression to its
7284         actual constrained subtype.
7285         Implement warning for <= or >= where < or > not possible
7286         Fix to Vax_Float tests (too early in many routines, causing premature
7287         Vax_Float expansions.
7288
7289         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
7290         to be used with packages and generic packages as well as with
7291         subprograms.
7292         (Suppress): Set All_Checks, but not Elaboration_Check, for case
7293         of pragma Suppress (All_Checks)
7294         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
7295         a string literal for precise control over warnings.
7296         Avoid raise of pragma in case of unrecognized pragma and just return
7297         instead.
7298
7299         * sem_prag.ads: Minor reformatting
7300
7301         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
7302         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
7303         Switch. Do not handle any exception.
7304         Include -gnatwx as part of -gnatg (warn on redundant parens)
7305         Allow optional = after -gnatm
7306         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
7307         longer sets Elaboration_Checks.
7308         Code to set warning mode moved to Sem_Warn
7309         so that it can be shared by pragma processing.
7310
7311         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
7312         statement.
7313
7314         * s-taprop-solaris.adb: 
7315         Change some <= to =, to avoid new warning
7316
7317         * a-exexda.adb, prj-proc.adb: 
7318         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
7319         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
7320
7321 2005-11-14  Robert Dewar  <dewar@adacore.com>
7322
7323         * exp_vfpt.adb: Handle /= case
7324         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
7325         so that we do not get duplicate scaling for fixed point conversions.
7326
7327         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
7328
7329 2005-11-14  Matthew Gingell  <gingell@adacore.com>
7330
7331         * system-lynxos-ppc.ads, system-lynxos-x86.ads: 
7332         Increase default priority on Lynx from 15 to 17, and meet the Ada
7333         requirement that Default_Priority be ((Priority'First +
7334         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
7335
7336 2005-11-14  Vincent Celier  <celier@adacore.com>
7337
7338         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
7339         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
7340         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
7341         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
7342         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
7343         mlib-tgt-lynxos.adb (DLL_Prefix): New function
7344
7345 2005-11-14  Doug Rupp  <rupp@adacore.com>
7346
7347         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
7348         private part.
7349
7350 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
7351
7352         * s-traces-default.adb, s-trafor-default.ads,
7353         s-tratas-default.adb: Fix compilation errors.
7354
7355 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
7356
7357         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
7358         raising the exception so the memory used is freed.
7359
7360 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
7361
7362         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
7363         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
7364         (convert_address): Update comments and list of platforms using this.
7365
7366         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
7367         no longer used.
7368
7369 2005-11-14  Pascal Obry  <obry@adacore.com>
7370             Vincent Celier  <celier@adacore.com>
7371
7372         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
7373         GNAT.Command_Line.
7374
7375         * memroot.adb: Remove redundant with/use clause on
7376         System.Storage_Elements.
7377
7378 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
7379
7380         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
7381         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
7382         related code to a-exexpr.adb
7383         (Save_Occurrence_And_Private): Move GCC EH related code to
7384         a-exexpr-gcc.adb
7385         (Raise_Current_Excep): Add new variable Id with pragma
7386         volatile, to ensure that the variable lives on stack.
7387
7388         * a-exexpr-gcc.adb, raise-gcc.c: New file.
7389
7390         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
7391         from a-except.adb.
7392         Move GCC EH related code to a-exexpr-gcc.adb
7393
7394         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
7395         64-bit Solaris
7396         Split the Linux version of g-soccon into separate variants for 32 and 64
7397         bit platforms.
7398         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
7399         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
7400         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
7401         of host variable $(RANLIB_FLAGS).
7402         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
7403         Code clean up: remove unused/obsolete targets.
7404         (EH_MECHANISM): New variable introduced to differenciate between the
7405         two EH mechanisms statically.
7406         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
7407         (LIBGNAT_OBJS): Add raise-gcc.o
7408         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
7409         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
7410         supports VxWorks 6 RTPs.
7411         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
7412         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
7413
7414         * raise.c: Move all GCC EH-related routines to raise-gcc.c
7415
7416 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
7417
7418         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
7419         deferral level, when abort is not allowed, to a later stage (the
7420         Task_Wrapper).
7421         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
7422         it will not get changed by the generated code. It was previously done
7423         in Create_Task.
7424
7425 2005-11-14  Thomas Quinot  <quinot@adacore.com>
7426             Olivier Hainque  <hainque@adacore.com>
7427             Eric Botcazou  <ebotcazou@adacore.com>
7428
7429         * decl.c:
7430         Factor common code to build a storage type for an unconstrained object
7431         from a fat or thin pointer type and a constrained object type.
7432         (annotate_value): Handle BIT_AND_EXPR.
7433         (annotate_rep): Don't restrict the back annotation of inherited
7434         components to the type_annotate_only case.
7435         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
7436         we are not defining the type.
7437         <E_Record_Type>: Likewise.
7438         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
7439         to get advantage of the new maybe_stabilize_reference interface, to
7440         ensure that what we reference is indeed stabilized instead of relying
7441         on assumptions on what the stabilizer does.
7442         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
7443         type imported through a limited_with clause, use its non-limited view.
7444         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
7445         differentiation.
7446         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
7447         of #if sections + explicit comparisons of convention identifiers.
7448         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
7449         before early-returning for certain types when code generation is
7450         disabled.
7451         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
7452         nullification of gnu_expr we do for objects with address clause and
7453         that we are not defining.
7454         (elaborate_expression_1): Do not create constants when creating
7455         variables needed by the debug info: the dwarf2 writer considers that
7456         CONST_DECLs is used only to represent enumeration constants, and emits
7457         nothing for them.
7458         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
7459         object with an address clause into an indirect reference, drop the
7460         initializing expression.
7461         Include "expr.h".
7462         (STACK_CHECK_BUILTIN): Delete.
7463         (STACK_CHECK_PROBE_INTERVAL): Likewise.
7464         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
7465         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
7466         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
7467         corresponding to the renamed object as ignored for debugging purposes.
7468
7469         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
7470         related): For a prefix that is a dereference of a fat or thin pointer,
7471         if there is an actual subtype provided by the front-end, use that
7472         subtype to build an actual type with bounds template.
7473         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
7474         is provided by the front-end, use that subtype to compute the size of
7475         the deallocated object.
7476         (gnat_to_gnu): When adding a statement into an elaboration procedure,
7477         check for a potential violation of a No_Elaboration_Code restriction.
7478         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
7479         with extra arguments to control whether to recurse through non-values
7480         and to let the caller know if the stabilization has succeeded.
7481         (gnat_stabilize_reference): Now a simple wrapper around
7482         maybe_stabilize, for common uses without restriction on lvalues and
7483         without need to check for the success indication.
7484         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
7485         pass false instead of 0 as the FORCE argument which is a bool.
7486         (Identifier_to_gnu): Remove checks ensuring that an renamed object
7487         attached to a renaming pointer has been properly stabilized, as no such
7488         object is attached otherwise.
7489         (call_to_gnu): Invoke create_var_decl to create the temporary when the
7490         function uses the "target pointer" return mechanism.
7491         Reinstate conversion of the actual to the type of the formal
7492         parameter before any other specific treatment based on the passing
7493         mechanism. This turns out to be necessary in order for PLACEHOLDER
7494         substitution to work properly when the latter type is unconstrained.
7495
7496         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
7497         common pattern.
7498         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
7499         with extra arguments to control whether to recurse through non-values
7500         and to let the caller know if the stabilization has succeeded.
7501
7502         * utils2.c (gnat_build_constructor): Only sort the fields for possible
7503         static output of record constructor if all the components are constant.
7504         (gnat_build_constructor): For a record type, sort the list of field
7505         initializers in increasing bit position order.
7506         Factor common code to build a storage type for an unconstrained object
7507         from a fat or thin pointer type and a constrained object type.
7508         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
7509         types variants, and process special cases of VIEW_CONVERT expressions
7510         as their NOP_EXPR counterpart to ensure we get to the
7511         CORRESPONDING_VARs associated with CONST_DECls.
7512         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
7513         on the right-hand side.
7514
7515         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
7516         a common pattern.
7517         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
7518         are converting back to its original type.
7519         (convert) <JM input>: Fallthrough regular conversion code instead of
7520         extracting the object if converting to a type variant.
7521         (create_var_decl): When a variable has an initializer requiring code
7522         generation and we are at the top level, check for a potential violation
7523         of a No_Elaboration_Code restriction.
7524         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
7525         SIZE and SIZE_UNIT which we need for later back-annotations.
7526         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
7527         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
7528         is an unchecked union.
7529         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
7530         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
7531         main variant, just replace the VIEW_CONVERT_EXPR.
7532         <UNION_TYPE>: Revert 2005-03-02 change.
7533
7534         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
7535
7536         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
7537
7538 2005-11-14  Matthew Heaney  <heaney@adacore.com>
7539
7540         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
7541         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
7542         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
7543         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
7544         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
7545         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
7546         Compiles against the spec for ordered maps described in sections
7547         A.18.6 of the most recent (August 2005) AI-302 draft.
7548
7549 2005-11-14  Olivier Hainque  <hainque@adacore.com>
7550
7551         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
7552         to ensure bias adjustments take place when need be and to prevent
7553         occurrences of intermediate overflows.
7554
7555 2005-11-14  Matthew Gingell  <gingell@adacore.com>
7556             Olivier Hainque  <hainque@adacore.com>
7557
7558         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
7559         ia64 HP-UX.
7560
7561         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
7562         tracebacks on ia64 HP-UX and provide explanatory comment.
7563         Enable backtraces on ia64 GNU/Linux.
7564         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
7565         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
7566
7567 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
7568             Javier Miranda  <miranda@adacore.com>
7569
7570         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
7571         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
7572         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
7573         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
7574
7575         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
7576         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
7577         assertions).
7578
7579         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
7580         subprogram that generates the external name associated with a
7581         secondary dispatch table.
7582         (Get_Secondary_DT_External_Name): New subprogram that generates the
7583         external name associated with a secondary dispatch table.
7584
7585 2005-11-14  Emmanuel Briot  <briot@adacore.com>
7586
7587         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
7588         line in the ALI file to include both an instantiation reference, and a
7589         returned value.
7590
7591 2005-11-14  Vincent Celier  <celier@adacore.com>
7592
7593         * clean.adb (Check_Project): Look for Ada code in extending project,
7594         even if Ada is not specified as a language.
7595         Use new function DLL_Prefix for DLL_Name
7596         (Clean_Interface_Copy_Directory): New procedure
7597         (Clean_Library_Directory): New procedure
7598         (Clean_Directory): Remove procedure, no longer used
7599         (Clean_Project): Do not delete any file in an externally built project
7600
7601         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
7602         directory of an extending project, even when there are no Ada source
7603         present.
7604         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
7605         (Set_Ada_Paths.Add.Recursive_Add): Ditto
7606
7607         * mlib-prj.adb (Check_Library): For all library projects, get the
7608         library file timestamp.
7609         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
7610         (Build_Library): Use new function DLL_Prefix for the DLL_Name
7611         (Clean): Remove procedure, no longer used
7612         (Ultimate_Extension_Of): New function
7613         (Build_Library): When cleaning the library directory, only remove an
7614         existing library file and any ALI file of a source of the project.
7615         When cleaning the interface copy directory, remove any source that
7616         could be a source of the project.
7617
7618         * prj.ads, prj.adb (Project_Empty): Add values of new components
7619         Library_TS and All_Imported_Projects.
7620         (Project_Empty): Add values for new components of Project_Data:
7621         Library_ALI_Dir and Display_Library_ALI_Dir
7622
7623         * prj-attr.adb: New project level attribute name Library_ALI_Dir
7624
7625         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
7626         attribute Library_ALI_Dir.
7627         (Check_Library_Attributes): The library directory cannot be the same as
7628         any source directory of the project tree.
7629         (Check_Stand_Alone_Library): The interface copy directory cannot be
7630         the same as any source directory of the project tree.
7631
7632         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
7633         all temporary files.
7634
7635 2005-11-14  Robert Dewar  <dewar@adacore.com>
7636             Ed Schonberg  <schonberg@adacore.com>
7637
7638         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
7639         (Check_Elab_Call): A call within a protected body is never an
7640         elaboration call, and does not require checking.
7641         (Same_Elaboration_Scope): Take into account protected types for both
7642         entities.
7643         (Activate_Elaborate_All_Desirable): New procedure
7644
7645         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
7646         desirable
7647
7648         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
7649         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
7650
7651         * lib-writ.ads, lib-writ.adb: 
7652         Implement new AD/ED for Elaborate_All/Elaborate desirable
7653         Use new Elaborate_All_Desirable flag in N_With_Clause node
7654
7655         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
7656         N_Free_Statement nodes.
7657         Define new class N_Subprogram_Instantiation
7658         Add Elaborate_Desirable flag to N_With_Clause node
7659         Add N_Delay_Statement (covering two kinds of delay)
7660
7661         * debug.adb: Introduce d.f flag for compiler
7662         Add -da switch for binder
7663
7664 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
7665             Cyrille Comar  <comar@adacore.com>
7666
7667         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
7668         for task component, in the case of a limited aggregate. The enclosed
7669         object declaration will create it earlier. Otherwise, in the case of a
7670         nested aggregate, the object may appear in the wrong scope.
7671         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
7672         (Gen_Assign): If the component being assigned is an array type and the
7673         expression is itself an aggregate, wrap the assignment in a block to
7674         force finalization actions on the temporary created for each row of the
7675         enclosing object.
7676         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
7677         structures are initialized after all discriminants are set so that
7678         they can be accessed even when their offset is dynamic.
7679
7680 2005-11-14  Robert Dewar  <dewar@adacore.com>
7681             Hristian Kirtchev  <kirtchev@adacore.com>
7682
7683         * sem_attr.adb: Implement Machine_Rounding attribute
7684         (Analyze_Access_Attribute): The access attribute may appear within an
7685         aggregate that has been expanded into a loop.
7686         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
7687         'Terminated whenever the prefix is of a task interface class-wide type.
7688         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
7689         the prefix is of a task interface class-wide type.
7690
7691         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
7692         to avoid warnings.
7693
7694         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
7695         Remove pragma Inline for [Unaligned_]Valid.
7696         Add comments that Valid routines do not work for Vax_Float
7697
7698         * exp_attr.adb: Implement Machine_Rounding attribute
7699
7700         * snames.h: Add entry for Machine_Rounding attribute
7701
7702 2005-11-14  Javier Miranda  <miranda@adacore.com>
7703             Robert Dewar  <dewar@adacore.com>
7704             Hristian Kirtchev  <kirtchev@adacore.com>
7705
7706         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
7707         and related): For a prefix that is an explicit dereference of an
7708         access to unconstrained packed array type, annotate the dereference
7709         with an actual subtype so GIGI can make a correct size computation.
7710         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
7711         'Unrestricted_Access, if the designated type is an interface we
7712         add a type conversion to force the displacement of the pointer
7713         to the secondary dispatch table.
7714         Use Universal_Real instead of Long_Long_Float when we need a high
7715         precision float type for the generated code (prevents gratuitous
7716         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
7717         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
7718         'Terminated for task interface class-wide objects. Generate a call to
7719         the predefined dispatching routine used to retrieve the _task_id from
7720         a task corresponding record.
7721         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
7722
7723         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
7724         (Check_Dispatching_Operation): Protect the frontend againts
7725         previously detected errors.
7726
7727         * Makefile.rtl: Add new instantiations of system.fat_gen
7728
7729         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
7730         Change name of instantiated package for better consistency
7731         with newly added system.fat_gen instantiations.
7732
7733         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
7734         s-fvagfl.ads: New files.
7735
7736 2005-11-14  Cyrille Comar  <comar@adacore.com>
7737             Thomas Quinot  <quinot@adacore.com>
7738
7739         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
7740         assignment of a value of a tagged type that has been rewritten to a
7741         block statement, it is known by construction that no checks are
7742         necessary for the statements within the block: analyze it with checks
7743         suppressed.
7744         (Expand_N_If_Statement): When killing a dead then-branch in an
7745         if-statement that has elsif_parts, recompute the Current_Value node
7746         for any entity whose value is known from the condition of the first
7747         elsif_part.
7748         (Expand_N_Return_Statement): When returning a mutable record, convert
7749         the return value into its actual subtype in order to help the backend
7750         to return the actual size instead of the maximum. This is another
7751         aftermath of not returning mutable records on the sec-stack anymore.
7752
7753         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
7754         handling of error msg for suspicious reverse range iteration.
7755         (Check_Possible_Current_Value_Condition): Move declaration from body to
7756         spec, to allow this subprogram to be called from exp_ch5.
7757
7758 2005-11-14  Thomas Quinot  <quinot@adacore.com>
7759
7760         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
7761         generate a set of nested array aggregates instead of a single flat
7762         aggregate for multi-dimensional arrays.
7763
7764 2005-11-14  Pascal Obry  <obry@adacore.com>
7765
7766         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
7767         by spawnve is a process handle, no need to convert. Add a parameter
7768         close to control wether the process handle must be closed.
7769         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
7770         a process handle, not need to convert.
7771         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
7772
7773         * g-expect.adb: (Kill): Document the new close parameter.
7774         (Close): Do not release the process handle in the kill there as
7775         waitpid() is using it.
7776         (Send_Signal): Release the process handle.
7777
7778 2005-11-14  Robert Dewar  <dewar@adacore.com>
7779
7780         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
7781         need a high precision float type for the generated code (prevents
7782         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
7783         used).
7784
7785         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
7786         need a high precision float type for the generated code (prevents
7787         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
7788         used).
7789         (Expand_Width_Attribute): In configurable run-time, the attribute is not
7790         allowed on non-static enumeration subtypes. Force a load error to emit
7791         the correct diagnostic.
7792
7793 2005-11-14  Thomas Quinot  <quinot@adacore.com>
7794             Robert Dewar  <dewar@adacore.com>
7795             Ed Schonberg  <schonberg@adacore.com>
7796
7797         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
7798         subtype to compute the size of the designated object at run-time,
7799         create such a subtype and store it in the Actual_Designated_Subtype
7800         attribute of the N_Free_Statement.
7801         Generate itype for classwide designated object in both cases of
7802         user-specified storage pool: specific and class-wide, not only in the
7803         specific case.
7804         Raise CE when trying to set a not null access type object to null.
7805         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
7806         an explicit loop, because freeze nodes make its position variable.
7807
7808         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
7809         null object.
7810
7811 2005-11-14  Javier Miranda  <miranda@adacore.com>
7812
7813         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
7814         Build_Stream_Procedure): Add the null-excluding attribute to the first
7815         formal.
7816         This has no semantic meaning under Ada95 mode but it is a
7817         requirement under Ada05 mode.
7818
7819         * par-ch3.adb (P_Access_Definition): Addition of warning message if
7820         the null exclusion is used under Ada95 mode
7821         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
7822         (P_Access_Definition): Remove assertion that forbids the use of
7823         the null-exclusion feature in Ada95.
7824
7825 2005-11-14  Robert Dewar  <dewar@adacore.com>
7826
7827         * impunit.adb: Exclude container helper units not intended for use by
7828         users.
7829
7830 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
7831
7832         * freeze.adb (Freeze_Entity): For an access formal that is an access
7833         to subprogram, freeze the anonymous subprogram type at the same time,
7834         to prevent later freezing in the wrong scope, such as the enclosing
7835         subprogram body.
7836         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
7837         subprogram whenever available.
7838
7839 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
7840
7841         PR ada/23732
7842         * gnatvsn.ads (Library_Version): Bump to 4.1
7843
7844 2005-11-14  Robert Dewar  <dewar@adacore.com>
7845
7846         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
7847         Storage_Offset to avoid wrap around causing invalid results.
7848
7849 2005-11-14  Pascal Obry  <obry@adacore.com>
7850
7851         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
7852         cross-compiler.
7853         (Scan_Bind_Arg): Fail with an error message if -M option is used
7854         on a native compiler.
7855
7856 2005-11-14  Robert Dewar  <dewar@adacore.com>
7857             Vincent Celier  <celier@adacore.com>
7858
7859         * gprep.adb: Implement -C switch to scan comments
7860
7861         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
7862
7863         * scans.ads: Comment updates (including new use of Tok_Comment in
7864         preprocessing)
7865
7866         * opt.ads: Add documentation for flags that are used by gprmake,
7867         currently and in the next version of gprmake.
7868         (Verbosity_Level): New variable
7869         Add Replace_In_Comments switch
7870
7871         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
7872         and -vm.
7873         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
7874
7875 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
7876
7877         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
7878         message, friendlier.
7879
7880 2005-11-14  Robert Dewar  <dewar@adacore.com>
7881
7882         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
7883
7884 2005-11-14  Doug Rupp  <rupp@adacore.com>
7885
7886         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
7887
7888 2005-11-14  Robert Dewar  <dewar@adacore.com>
7889
7890         * interfac.ads: Change declarations of IEEE float types so that we no
7891         longer need a separate version of this package for VMS.
7892
7893 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
7894
7895         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
7896         internal entity created for the declaration of a child subprogram body
7897         with no spec as coming from source, to generate proper cross-reference
7898         information.
7899
7900 2005-11-14  Vincent Celier  <celier@adacore.com>
7901
7902         * make.adb (Compile_Sources): Change verbose message to minimum
7903         verbosity level High for "is in an Ada library", "is a read-only
7904         library" and "is an internal library",
7905         (Create_Binder_Mapping_File): Path name of ALI file for library project
7906         must include the library directory, not the object directory.
7907         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
7908         for new switches -vl, -vm and -vh.
7909         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
7910         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
7911         (Compile_Sources): Do not attempt to compile if an ALI file is missing
7912         in a project that is externally built.
7913         (Compute_All_Imported_Projects): New procedure
7914         (Gnatmake): Check if importing libraries should be regenerated because
7915         at least an imported library is more recent.
7916         (Initialize): For each project compute the list of the projects it
7917         imports directly or indirectly.
7918         (Add_Library_Search_Dir): New procedure, used in place of
7919         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
7920         put in the search paths.
7921         (Add_Source_Search_Dir): New procedure, used in place of
7922         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
7923         put in the search paths.
7924         (Mark_Directory): Resolve the absolute path the directory before marking
7925         it.
7926
7927         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
7928         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
7929         Switch. Do not handle any exception.
7930         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
7931         so that the switch is recognized as valid.
7932         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
7933
7934 2005-11-14  GNAT Script  <nobody@adacore.com>
7935
7936         * Make-lang.in: Makefile automatically updated
7937
7938 2005-11-14  Pascal Obry  <obry@adacore.com>
7939
7940         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
7941         used.
7942         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
7943         In both cases the last argument was dropped.
7944
7945 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
7946
7947         * namet.h: (Column_Numbe): New type.
7948         (Get_Column_Number): Define to sinput__get_column_number.
7949         (Instantiation): Define to sinput__instantiation.
7950         (Get_Column_Number): Declare.
7951         (Instantiation): Likewise.
7952
7953 2005-11-14  Robert Dewar  <dewar@adacore.com>
7954
7955         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
7956         syntax, which could cause compiler hangs.
7957
7958 2005-11-14  Vincent Celier  <celier@adacore.com>
7959
7960         * prj-ext.adb: Take into account new environment variable
7961         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
7962         are defined.
7963         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
7964         normalize its path name, making it absolute and resolving symbolic
7965         links, and replace the original if resolved path is different.
7966
7967 2005-11-14  Vincent Celier  <celier@adacore.com>
7968
7969         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
7970         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
7971
7972 2005-11-14  Emmanuel Briot  <briot@adacore.com>
7973
7974         * prj-pp.adb (Print): Do not output the with statement if the
7975         associated name is empty, which happens for virtual extending projects.
7976         (Print): Preserve the "extends all" attribute when printing the project.
7977
7978         * prj-tree.ads (String_Value_Of): Add comment about returned value for
7979         a virtual extending project.
7980
7981 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
7982
7983         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
7984         rhs of an assignment even if the type is unconstrained, when the
7985         context is non-expanding.
7986         In an inlined body, if the context type is private,
7987         resolve with its full view, which must be a composite type.
7988
7989 2005-11-14  Robert Dewar  <dewar@adacore.com>
7990             Ed Schonberg  <schonberg@adacore.com>
7991
7992         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
7993         Do not give obsolescent warning on with of subprogram (since we
7994         diagnose calls)
7995         (Analyze_With_Clause): Add test for obsolescent package
7996         (Install_Context_Clauses): If the unit is the body of a child unit, do
7997         not install twice the private declarations of the parents, to prevent
7998         circular lists of Use_Clauses in a parent.
7999         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
8000         compiling body of child unit.
8001         Use new class N_Subprogram_Instantiation
8002         (Expand_With_Clause): If this is a private with_clause for a child unit,
8003         appearing in the context of a package declaration, then the implicit
8004         with_clauses generated for parent units are private as well.
8005         (License_Check): Do not generate message if with'ed unit is internal
8006
8007 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
8008             Ed Schonberg  <schonberg@adacore.com>
8009             Thomas Quinot  <quinot@adacore.com>
8010
8011         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
8012         names are internal, because they will not have a corresponding partner
8013         in the actual package.
8014         (Analyze_Formal_Package): Move the setting of the formal package spec's
8015         Generic_Parent field so that it occurs prior to analyzing the package,
8016         to allow proper operation of Install_Parent_Private_Declarations.
8017         (Analyze_Package_Instantiation): Set the instantiated package entity's
8018         Package_Instantiation field.
8019         (Get_Package_Instantiation_Node): Move declaration to package spec.
8020         Retrieve the N_Package_Instantiation node when the Package_Instantiation
8021         field is present.
8022         (Check_Generic_Child_Unit): Within an inlined call, the only possible
8023         instantiation is Unchecked_Conversion, for which no parents are needed.
8024         (Inline_Instance_Body): Deinstall and record the use_clauses for all
8025         parent scopes of a scope being removed prior to inlining an instance
8026         body.
8027         (Analyze_Package_Instantiation): Do not perform front-end inlining when
8028         the current context is itself an instance within a non-instance child
8029         unit, to prevent scope stack errors.
8030         (Save_References): If the node is an aggregate that is an actual in a
8031         call, rewrite as a qualified expression to preserve some type
8032         information, to resolve possible ambiguities in the instance.
8033         (Instance_Parent_Unit): New global variable to record the ultimate
8034         parent unit associated with a generic child unit instance (associated
8035         with the existing Parent_Unit_Visible flag).
8036         (type Instance_Env): New component Instance_Parent_Unit for stacking
8037         parents recorded in the global Instance_Parent_Unit.
8038         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
8039         stack.
8040         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
8041         it's not a top-level unit, and only do this if Instance_Parent_Unit is
8042         not already set. Replace test of Is_Child_Unit with test of parent's
8043         scope against package Standard. Add comments and a ??? comment.
8044         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
8045         on a child instance parent to test that the parent equals
8046         Instance_Parent rather than simply checking that the unit is not a
8047         child unit.
8048         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
8049         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
8050         a formal interface are ancestors of the corresponding actual.
8051         (Validate_Formal_Interface_Type): Additional legality checks.
8052         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
8053         interface types with ancestors.
8054         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
8055         to diagnose attempts to use generic within its own declaration.
8056
8057 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
8058             Javier Miranda  <miranda@adacore.com>
8059
8060         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
8061         discriminant.
8062         (Build_Private_Derived_Type): The entity of the created full view of the
8063         derived type does not come from source. If after installing the private
8064         declarations of the parent scope the parent is still private, use its
8065         full view to construct the full declaration of the derived type.
8066         (Build_Derived_Record_Type): Relax the condition that controls the
8067         execution of the check that verifies that the partial view and
8068         the full view agree in the set of implemented interfaces. In
8069         addition, this test now only takes into account the progenitors.
8070         (Derive_Interface_Subprograms): No need to derive subprograms
8071         of ancestors that are interfaces.
8072         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
8073         associated code.
8074         Change name Is_Package to Is_Package_Or_Generic_Package
8075         (Complete_Subprograms_Derivation): Handle the case in which the full
8076         view is a transitive derivation of the ancestor of the partial view.
8077         (Process_Full_View): Rename local subprogram Find_Interface_In_
8078         Descendant to Find_Ancestor_Interface to leave the code more clear.
8079         Remove wrong code that avoids the generation of an error message
8080         when the immediate ancestor of the partial view is an interface.
8081         In addition some minor reorganization of the code has been done to
8082         leave it more clear.
8083         (Analyze_Type_Declaration): If type has previous incomplete tagged
8084         partial view, inherit properly its primitive operations.
8085         (Collect_Interfaces): Make public, for analysis of formal
8086         interfaces.
8087         (Analyze_Interface_Declaration): New procedure for use for regular and
8088         formal interface declarations.
8089         (Build_Derived_Record_Type): Add support for private types to the code
8090         that checks if a tagged type implements abstract interfaces.
8091         (Check_Aliased_Component_Type): The test applies in the spec of an
8092         instance as well.
8093         (Access_Type_Declaration): Clean up declaration of malformed type
8094         declared as an access to its own classwide type, to prevent cascaded
8095         crash.
8096         (Collect_Interfaces): For private extensions and for derived task types
8097         and derived protected types, the parent may be an interface that must
8098         be included in the interface list.
8099         (Access_Definition): If the designated type is an interface that may
8100         contain tasks, create Master_Id for it before analyzing the expression
8101         of the declaration, which may be an allocator.
8102         (Record_Type_Declaration): Set properly the interface kind, for use
8103         in allocators, the creation of master id's for task interfaces, etc.
8104
8105 2005-11-14  Javier Miranda  <miranda@adacore.com>
8106             Ed Schonberg  <schonberg@adacore.com>
8107
8108         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
8109         omitted in case of stream attribute subprograms.
8110         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
8111         appear immediately after a subprogram body, when there is no previous
8112         subprogram declaration.
8113         Change name Is_Package to Is_Package_Or_Generic_Package
8114         (Process_Formals): A non null qualifier on a non null named access
8115         type is not an error, and is a warning only if Redundant_Constructs
8116         are flagged.
8117
8118 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
8119             Ed Schonberg  <schonberg@adacore.com>
8120
8121         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
8122         nested within Analyze_Package_Specification to install the private
8123         declarations and use clauses within each of the parent units of a
8124         package instance of a generic child package.
8125         (Analyze_Package_Specification): When entering a private part of a
8126         package associated with a generic instance or formal package, the
8127         private declarations of the parent must be installed (by calling new
8128         procedure Install_Parent_Private_Declarations).
8129         Change name Is_Package to Is_Package_Or_Generic_Package
8130         (Preserve_Full_Attributes): For a synchronized type, the corresponding
8131         record is absent in a generic context, which does not indicate a
8132         compiler error.
8133
8134 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
8135
8136         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
8137         not try to rewrite a renamed stream attribute, because the operations
8138         on the type may not have been generated.
8139         Handle properly a renaming_as_body generated for a stream operation
8140         whose default is abstract because the object type itself is abstract.
8141         (Find_Type): If the type is incomplete and appears as the prefix of a
8142         'Class reference, it is tagged, and its list of primitive operations
8143         must be initialized properly.
8144         (Chain_Use_Clauses): When chaining the use clauses that appear in the
8145         private declaration of a parent unit, prior to compiling the private
8146         part of a child unit, find on the scope stack the proper parent entity
8147         on which to link the use clause.
8148         (Note_Redundant_Use): Emit a warning when a redundant use clause is
8149         detected.
8150         (Analyze_Object_Renaming): An attribute reference is not a legal object
8151         if it is not a function call.
8152
8153 2005-11-14  Robert Dewar  <dewar@adacore.com>
8154             Ed Schonberg  <schonberg@adacore.com>
8155
8156         * sem_eval.adb: Implement d.f flag
8157         (Subtype_Statically_Match): A generic actual type has unknown
8158         discriminants when the corresponding actual has a similar partial view.
8159         If the routine is called to validate the signature of an inherited
8160         operation in a child instance, the generic actual matches the full view,
8161
8162 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
8163             Ed Schonberg  <schonberg@adacore.com>
8164             Robert Dewar  <dewar@adacore.com>
8165             Thomas Quinot  <quinot@adacore.com>
8166
8167         * sem_res.adb (Resolve_Call): Provide a better error message whenever
8168         a procedure call is used as a select statement trigger and is not an
8169         entry renaming or a primitive of a limited interface.
8170         (Valid_Conversion): If the operand has a single interpretation do not
8171         remove address operations.
8172         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
8173         statement to inhibit warning.
8174         (Resolve_Unary_Op): Do not produce a warning when
8175         processing an expression of the form -(A mod B)
8176         Use Universal_Real instead of Long_Long_Float when we need a high
8177         precision float type for the generated code (prevents gratuitous
8178         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
8179         (Resolve_Concatenation_Arg): Improve error message when argument is an
8180         ambiguous call to a function that returns an array.
8181         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
8182         there is an implicit operator in the given scope if we are within an
8183         instance: legality check has been performed on the generic.
8184         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
8185         after resolving operand, to avoid false warnings on overloaded calls.
8186
8187 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
8188             Javier Miranda  <miranda@adacore.com>
8189
8190         PR ada/15604
8191         * sem_type.adb (Covers): In an inlined body, a composite type matches
8192         a private type whose full view is a composite type.
8193         (Interface_Present_In_Ancestor): Protect the frontend against
8194         previously detected errors to ensure that its compilation
8195         with assertions enabled gives the same output that its
8196         compilation without assertions.
8197         (Interface_Present_In_Ancestor): Add support for private types.
8198         Change name In_Actual to In_Generic_Actual (clean up)
8199         (Disambiguate): New predicate In_Actual, to recognize expressions that
8200         appear in the renaming declaration generated for generic actuals, and
8201         which must be resolved in the outer context.
8202
8203 2005-11-14  Robert Dewar  <dewar@adacore.com>
8204             Thomas Quinot  <quinot@adacore.com>
8205             Hristian Kirtchev  <kirtchev@adacore.com>
8206             Ed Schonberg  <schonberg@adacore.com>
8207
8208         * sem_util.ads, sem_util.adb: Change name Is_Package to
8209         Is_Package_Or_Generic_Package.
8210         (Check_Obsolescent): New procedure.
8211         (Set_Is_Public): Remove obsolete junk test.
8212         (Set_Public_Status): Do not set Is_Public on an object whose declaration
8213         occurs within a handled_sequence_of_statemets.
8214         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
8215         for a parameterless procedure.
8216         (Enter_Name): Recognize renaming declarations created for private
8217         component of a protected type within protected operations, so that
8218         the source name of the component can be used in the debugger.
8219
8220 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
8221             Robert Dewar  <dewar@adacore.com>
8222
8223         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
8224         of a generic subprogram are not visible outside the body.
8225         (Set_Warning_Switch): New procedure (code to set warning mode moved
8226         here from Switch.C so that it can be shared by pragma processing.
8227         (Check_References): Special case warning for non-modified non-imported
8228         volatile objects.
8229         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
8230         form with a string literal argument
8231
8232 2005-11-14  Javier Miranda  <miranda@adacore.com>
8233
8234         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
8235         anonymous access.
8236         (Write): Addition of "not null" to the anonymous access.
8237         (Read): Addition of "not null" to the anonymous access.
8238         (Write): Addition of "not null" to the anonymous access.
8239
8240         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
8241         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
8242         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
8243         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
8244         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
8245         "not null" to the anonymous access.
8246
8247 2005-11-14  Robert Dewar  <dewar@adacore.com>
8248
8249         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
8250         offset values
8251
8252 2005-11-14  Vincent Celier  <celier@adacore.com>
8253
8254         * switch.adb (Bad_Switch): New procedure
8255         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
8256         message when in error.
8257
8258         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
8259         Too_Many_Output_Files): Remove declarations, no longer used.
8260         (Scan_Nat): New parameter Switch
8261         (Scan_Pos): Ditto
8262         (Bad_Switch): New procedure
8263
8264         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
8265         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
8266         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
8267         to Osint.Fail. Do not handle any exception.
8268
8269 2005-11-14  Vincent Celier  <celier@adacore.com>
8270
8271         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
8272         designates a non existent directory.
8273
8274 2005-11-14  Robert Dewar  <dewar@adacore.com>
8275
8276         * xgnatugn.adb: Replace invalid membership test by 'Valid
8277
8278 2005-11-14  Vincent Celier  <celier@adacore.com>
8279
8280         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
8281         there is no object directory.
8282
8283 2005-11-14  Robert Dewar  <dewar@adacore.com>
8284
8285         * usage.adb: Minor adjustment to output format, use nn instead of nnn
8286         (so that -gnateInnn does not run into next column)
8287
8288 2005-11-14  Ed Falis  <falis@adacore.com>
8289
8290         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
8291         "constrained"
8292
8293 2005-11-14  Cyrille Comar  <comar@adacore.com>
8294
8295         * s-chepoo.ads: Add comments on Dereference.
8296         Remove unnecessary inherited abstract primitives.
8297         Cosmetic cleanup.
8298
8299 2005-11-14  Robert Dewar  <dewar@adacore.com>
8300
8301         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
8302         node parameter, not needed, since it is available as Declaration_Node.
8303
8304 2005-11-14  Geert Bosch  <bosch@adacore.com>
8305
8306         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
8307         grammatically correct.
8308
8309 2005-11-14  Vincent Celier  <celier@adacore.com>
8310
8311         * s-fileio.ads: Correct spelling error in comment
8312
8313 2005-11-14  Cyrille Comar  <comar@adacore.com>
8314             Robert Dewar  <dewar@adacore.com>
8315             Vincent Celier  <celier@adacore.com>
8316             Ben Brosgol  <brosgol@adacore.com>
8317             Jose Ruiz  <ruiz@adacore.com>
8318             Pascal Obry  <obry@adacore.com>
8319
8320         * gnat_ugn.texi: 
8321         Document that -fstack-check is needed for strict compliance with the
8322         Ada 95 Reference Manual.
8323         Correct reference to VAX systems to meet HP guidelines
8324         Add documentation for new gnatmake switches -vl, -vm and -vh
8325         Replace DEC Ada by HP Ada
8326         Replace DIGITAL by HP
8327         Remove empty section on tools in compatibility section
8328         Clarify the Windows convention semantics.
8329         Document the Win32 calling convention.
8330         The Stdcall, Win32 and DLL convention are synonyms.
8331         Add a note in -gnatR description about zero size record components
8332         Note on new >= and <= warnings for -gnatwc
8333         Document that equal sign after -gnatm is optional.
8334         Note that strip is working fine on DLL built with a Library
8335         Project. The restriction apply only to DLL built with gnatdll.
8336         Update section about the way to debug a DLL.
8337         Update information about the DLL convention.
8338         Document -C switch for gnatprep
8339         Document new attribute Library_ALI_Dir
8340         Update elaboration doc to include implicit Elaborate pragmas now
8341         generated for subprogram instantiations.
8342         Document limitation on executable names that include spaces for --GCC,
8343         --GNATBIND, and --GNATLINK switches.
8344         Document that -w causes -gnatws to be added at start of gcc switches
8345
8346         * gnat_rm.texi: Document that -mieee is needed for generating infinite
8347         and NaN values in case of overflow on machines that are not fully
8348         compliant with the IEEE floating-point standard.
8349         Create a section describing the set of compiler options needed for
8350         strict compliance with the Ada 95 Reference Manual.
8351         Add documentation for pragma Obsolescent applied to a package
8352         Clarify potential issues of mixed language programs related to the
8353         I/O buffering enabling in the elaboration of the GNAT runtime.
8354         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
8355         This documentation only patch adds extra documentsion for pragma
8356         Restrictions (No_Elaboration_Code), explaining why it is not possible
8357         to document this restriction in terms of allowed source constructs.
8358         Document string literal form of pragma Warnings
8359         Document new attribute Library_ALI_Dir
8360         Add documentation on stable attributes in project files that was missing
8361
8362         * gnat-style.texi: Indicate that paragraphs within a single comment
8363         should be separated by empty comment lines
8364
8365         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
8366         /05 respectively)
8367
8368         * bindusg.adb: Minor cleanup, put -m before -M for consistency
8369
8370 2005-11-14  Robert Dewar  <dewar@adacore.com>
8371
8372         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
8373         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
8374         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
8375         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
8376         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
8377         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
8378         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
8379         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
8380         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
8381         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
8382         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
8383         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
8384         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
8385         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
8386         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
8387         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
8388         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
8389         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
8390         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
8391         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
8392         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
8393         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
8394         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
8395         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
8396         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
8397         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
8398         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
8399         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
8400         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
8401         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
8402         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
8403         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
8404         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
8405         system-interix.ads, system-solaris-sparc.ads,
8406         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
8407         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
8408         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
8409         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
8410         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
8411         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
8412         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
8413         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
8414         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
8415         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
8416         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
8417         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
8418         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
8419         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
8420         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
8421         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
8422         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
8423         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
8424         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
8425         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
8426         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
8427         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
8428         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
8429         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
8430         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
8431         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
8432         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
8433         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
8434         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
8435         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
8436         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
8437         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
8438         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
8439         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
8440         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
8441         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
8442         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
8443         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
8444         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
8445         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
8446         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
8447         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
8448         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
8449         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
8450         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
8451         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
8452         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
8453         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
8454         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
8455         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
8456         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
8457         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
8458         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
8459         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
8460         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
8461         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
8462         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
8463         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
8464         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
8465         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
8466         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
8467         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
8468         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
8469         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
8470         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
8471         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
8472         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
8473         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
8474         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
8475         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
8476         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
8477         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
8478         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
8479         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
8480         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
8481         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
8482         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
8483         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
8484         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
8485         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
8486         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
8487         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
8488         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
8489         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
8490         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
8491         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
8492         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
8493         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
8494         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
8495         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
8496         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
8497         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
8498         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
8499         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
8500         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
8501         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
8502         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
8503         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
8504         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
8505         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
8506         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
8507         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
8508         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
8509         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
8510         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
8511         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
8512         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
8513         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
8514         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
8515         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
8516         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
8517         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
8518         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
8519         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
8520         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
8521         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
8522         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
8523         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
8524         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
8525         a-numaux-darwin.ads, a-numaux-darwin.adb,
8526         a-swuwha.ads, a-stunha.ads: Minor reformatting
8527
8528 2005-11-14  Robert Dewar  <dewar@adacore.com>
8529
8530         PR ada/18434
8531         * osint-m.adb: Add pragma Elaborate_All for Osint
8532
8533 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
8534
8535         PR ada/23995
8536         * trans.c (call_to_gnu): Restore statement lost in translation.
8537
8538 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
8539
8540         * init.c: Use the Linux-specific section for the IA-64/Linux target.
8541         (__gnat_adjust_context_for_raise): Add conditional code so that the
8542         IA-64 is also supported.
8543
8544 2005-11-03  James E Wilson  <wilson@specifix.com>
8545
8546         PR ada/23427
8547         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
8548         TREE_OVERFLOW check.
8549
8550 2005-09-21  Olivier Hainque  <hainque@adacore.com>
8551
8552         PR ada/22418
8553         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
8554         as we create them to store a size in bits.
8555
8556 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
8557
8558         PR ada/21937
8559         PR ada/22328
8560         PR ada/22381
8561         PR ada/22383
8562         PR ada/22419
8563         PR ada/22420
8564         * utils2.c (build_return_expr): New helper function.
8565         * gigi.h (build_return_expr): Declare it.
8566         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
8567         of manually building the RETURN_EXPR tree.
8568         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
8569         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
8570         build_binary_op for the "target pointer" case.  Use build_return_expr
8571         instead of manually building the RETURN_EXPR tree.
8572
8573 2005-09-16  Laurent GUERBY  <laurent@guerby.net>
8574
8575         PR ada/23788
8576         * s-tpinop.ads: Make this unit Preelaborate.
8577
8578 2005-09-16  Andreas Jaeger  <aj@suse.de>
8579
8580         * socket.c: Add string.h for memcpy.
8581
8582 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
8583
8584         * dec-io.ads, dec-io.adb: Removed, no longer used.
8585
8586 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
8587
8588         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
8589
8590         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
8591         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
8592         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
8593         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
8594         dependent units are Preelaborate.
8595         (Initialize): Call Interrupt_Managemeent.Initialize and
8596         OS_Primitives.Initialize to ensure proper initialization of this unit.
8597         Remove use of System.Soft_Links
8598         Make this unit Preelaborate.
8599
8600         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
8601         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
8602         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
8603         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
8604         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
8605         s-tratas.ads, s-tasinf.ads: Minor reformatting.
8606         Add pragma Preelaborate, since these packages are suitable for this
8607         categorization.
8608         Update comments.
8609
8610         * s-traent-vms.ads, s-intman-dummy.adb,
8611         s-taprop-dummy.adb: Make this unit Preelaborate.
8612
8613         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
8614         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
8615         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
8616         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
8617         s-intman-solaris.adb, s-intman-irix-athread.adb,
8618         s-intman-irix.adb: Mark this unit Preelaborate.
8619         (Initialize): New procedure.
8620         Update comments.
8621
8622         * s-taspri-linux.ads: Removed.
8623
8624         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
8625         as done by other implementations (e.g. posix).
8626
8627         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
8628         responsible for deferring abort.
8629         Mark this unit Preelaborate.
8630
8631         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
8632         proper initialization of the tasking run-time.
8633
8634         * s-tasdeb.ads: Mark this unit Preelaborate.
8635         (Known_Tasks): Add explicit default value to avoid elaboration code.
8636
8637         * s-inmaop-vms.adb (Elaboration code): Add call to
8638         Interrupt_Management.Initialize since the elaboration code depends on
8639         proper initialization of this package.
8640
8641         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
8642         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
8643         s-osprim-posix.adb: Make this unit Preelaborate.
8644
8645         * a-calend.adb: Add call to OS_Primitives.Initialize
8646
8647         * a-elchha.adb: Update use of Except.Id.Full_Name.
8648         Minor reformatting.
8649         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
8650
8651         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
8652         Move with clauses outside Warnings Off now that dependent units are
8653         Preelaborate.
8654         Use raise xxx with "..."; Ada 2005 form.
8655
8656         * a-taside.ads, a-taside.adb:
8657         Remove some dependencies, to make it easier to make this unit truly
8658         Preelaborate.
8659         Rewrite some code to be conformant with Preelaborate rules.
8660
8661         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
8662         marked Preelaborate in the future.
8663
8664         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
8665         these units Preelaborate.
8666
8667         * s-exctab.adb: Update use of Except.Id.Full_Name.
8668
8669         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
8670         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
8671         Set_Exc_Stack_Addr): Removed, no longer used.
8672         Remove reference to *Machine_State_Addr*, no longer needed.
8673
8674         * s-stalib.ads: Mark this unit as Preelaborate[_05].
8675         (Exception_Data): Full_Name is now a System.Address so that this unit
8676         can be made Preelaborate.
8677         Clean up/simplify code thanks to Full_Name being a System.Address.
8678         Remove obsolete pragma Suppress (All_Checks), no longer needed.
8679
8680         * s-taskin.ads, s-taskin.adb:
8681         Move with clauses outside Warnings Off now that dependent units are
8682         Preelaborate.
8683         Make this unit Preelaborate.
8684         (Initialize): New proceduure, replace elaboration code and makes the
8685         set up of the tasking run-time cleaner.
8686         (Detect_Blocking): Now a function instead of a deferred boolean, to
8687         obey Preelaborate rules.
8688
8689         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
8690         soft links, no longer used.
8691
8692         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
8693         packages are suitable for this categorization.
8694
8695         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
8696         since we compile run-time sources in Ada 2005 mode.
8697         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
8698         avoid having s-taprop*.adb depend on s-soflin and to avoid code
8699         duplication.
8700         Remove reference to *Machine_State_Addr*, no longer needed.
8701
8702 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
8703
8704         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
8705         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
8706         Remove reference to System.Exceptions.
8707
8708         * s-mastop-x86.adb: Removed, no longer used.
8709
8710         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
8711
8712         * a-excach.adb: Minor reformatting.
8713
8714         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
8715         instead fix new warnings that were hidden by this change.
8716         (AAA, ZZZ): Removed, replaced by...
8717         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
8718         are used instead of constants, to help make Ada.Exception truly
8719         preelaborate.
8720         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
8721         Raise_Storage_Error): File is now a System.Address, to simplify code.
8722         (Elab code): Removed, no longer used.
8723         (Null_Occurrence): Remove Warnings Off and make this construct
8724         preelaborate.
8725         Remove code related to front-end zero cost exception handling, since
8726         it is no longer used.
8727         Remove -gnatL/-gnatZ switches.
8728
8729         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
8730         Update use of Except.Msg.
8731
8732         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
8733         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
8734         to front-end zero cost exception handling, since it is no longer used.
8735         Remove -gnatL/-gnatZ switches.
8736
8737         * lib-writ.ads: Minor reformatting
8738         Remove doc of UX
8739
8740         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
8741
8742         * Make-lang.in: Remove references to s-except.ads
8743
8744         * s-except.ads: Removed, no longer used.
8745
8746         * s-mastop.ads, s-mastop.adb:
8747         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
8748         Remove reference to System.Exceptions.
8749
8750         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
8751         switch-b.adb: Remove code related to front-end zero cost exception
8752         handling, since it is no longer used.
8753         Remove -gnatL/-gnatZ switches.
8754
8755 2005-09-01  Robert Dewar  <dewar@adacore.com>
8756             Gary Dismukes  <dismukes@adacore.com>
8757             Javier Miranda  <miranda@adacore.com>
8758
8759         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
8760         type by valid test and generate warning.
8761         (Tagged_Membership): Generate call to the run-time
8762         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
8763         Change formal name Subtype_Mark to Result_Definition in several calls to
8764         Make_Function_Specification.
8765         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
8766         check for proper accessibility of the operand of a class-wide allocator.
8767         The check can be left out if checks are suppressed or if the expression
8768         has a specific tagged type whose level is known to be safe.
8769
8770         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
8771         generates the run-time check associated with null-excluding entities.
8772         (Expand_N_Return_Statement): Add tests to determine if the accessibility
8773         check on the level of the return expression of a class-wide function
8774         can be elided. The check usually isn't needed if the expression has a
8775         specific type (unless it's a conversion or a formal parameter). Also
8776         add a test for whether accessibility checks are suppressed. Augment
8777         the comments to describe the conditions for performing the check.
8778
8779 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
8780             Javier Miranda  <miranda@adacore.com>
8781             Gary Dismukes  <dismukes@adacore.com>
8782             Ed Schonberg  <schonberg@adacore.com>
8783
8784         * a-tags.adb (IW_Membership): Give support to
8785         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
8786         subprogram has been extended to look for the tag in the ancestors tag
8787         table.
8788         Update the structure of the GNAT Dispatch Table to reflect the
8789         additional two tables used in dispatching selects.
8790         Introduce appropriate array types and record components in
8791         Type_Specific_Data to reflect the two tables.
8792         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
8793         the TSD of a tag, indexed by position.
8794         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
8795         operation kind in the TSD of a tag, indexed by position.
8796
8797         * a-tags.ads: Introduce an enumeration type to capture different
8798         primitive operation kinds. Define a constant reflecting the number of
8799         predefined primitive operations.
8800         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
8801         of an entry wrapper.
8802         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
8803         callable entity of a primitive operation.
8804
8805         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
8806         primitive operations used in dispatching selects for limited
8807         interfaces, limited tagged, task and protected types what implement a
8808         limited interface.
8809         (Freeze_Type): Generate the bodies of the primitive operations used in
8810         dispatching selects for limited tagged, task and protected types that
8811         implement a limited interface. Generate statements to populate the two
8812         auxiliary tables used for dispatching in select statements.
8813         (Freeze_Record_Type): Add call to initialize the dispatch table entries
8814         associated with predefined interface primitive operations.
8815         (Build_Dcheck_Function): Change Set_Subtype_Mark to
8816         Set_Result_Definition.
8817         (Build_Variant_Record_Equality): Change Subtype_Mark to
8818         Result_Definition.
8819         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
8820         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
8821         (Build_Assignment): Simplify the code that adds the run-time-check.
8822         (Expand_N_Object_Declaration): Code cleanup.
8823
8824         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
8825         entries when there is a protected type that implements a limited
8826         interface.
8827
8828         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
8829         common routines used in expansion of dispatching selects.
8830         (Add_Private_Declarations): Select the appropriate protection type when
8831         there is a protected type that implements a limited interface.
8832         (Build_Parameter_Block): Generate a wrapped parameter block.
8833         (Build_Protected_Subprogram_Body): Select the appropriate type for
8834         locking entries when there is a protected type that implements a
8835         limited interface.
8836         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
8837         classified as entry wrappers.
8838         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
8839         asynchronous selects.
8840         (Expand_N_Conditional_Entry_Call): Add support for expansion of
8841         dispatching conditional selects.
8842         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
8843         protection when there is a protected type that implements limited
8844         interfaces.
8845         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
8846         timed selects.
8847         (Extract_Dispatching_Call): Extract the entity of the name of a
8848         dispatching call, the object parameter, actual parameters and
8849         corresponding formals.
8850         (Make_Initialize_Protection): Correct logic of protection initialization
8851         when there is a protected type that implements a limited interface.
8852         (Parameter_Block_Pack): Populate a wrapped parameter block with the
8853         values of actual parameters.
8854         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
8855         block and assign them to the original actual parameters.
8856
8857         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
8858         (Build_Protected_Sub_Specification): Change the type and name of the
8859         last formal to account for the increased variety of protection modes.
8860
8861         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
8862         entities. Used to save the value of the Is_Hidden attribute when the
8863         limited-view is installed.
8864         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
8865         the attribute of procedures classified as entry wrappers.
8866         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
8867         entity of a primitive wrapper.
8868         (Write_Entity_Flags): Output the name and value of the
8869         Is_Primitive_Wrapper attribute.
8870         (Write_Field27_Name): Output the name and entity of the field Wrapped_
8871         Entity.
8872         (Underlying_Type): If we have an incomplete entity that comes from
8873         the limited view then we return the Underlying_Type of its non-limited
8874         view if it is already available.
8875         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
8876         including operators.
8877         (Write_Field26_Name): Add entry for Overridden_Operation
8878         (Overridden_Operation): New attribute of functions and procedures.
8879
8880         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
8881         predefined position in the dispatch table for the primitive operations
8882         used in dispatching selects.
8883         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
8884         predefined primitive operations and replace it with
8885         Default_Prim_Op_Count.
8886         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
8887         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
8888         the names of the generated primitive operations used in dispatching
8889         selects.
8890         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
8891         case of abstract interface types. They will be inherit by the objects
8892         implementing the interface.
8893         (Make_DT): There is no need to inherit the dispatch table of the
8894         ancestor interface for the elaboration of abstract interface types.
8895         The dispatch table will be inherited by the object implementing the
8896         interface.
8897         (Copy_Secondary_DTs): Add documentation.
8898         (Validate_Position): Improve this static check in case of
8899         aliased subprograms because aliased subprograms must have
8900         the same position.
8901         (Init_Predefined_Interface_Primitives): New subprogram that initializes
8902         the entries associated with predefined primitives of all the secondary
8903         dispatch tables.
8904         (Build_Anonymous_Access_Type): Removed.
8905         (Expand_Interface_Actuals): With the previous cleanup there is no need
8906         to build an anonymous access type. This allows further cleanup in the
8907         code generated by the expander.
8908         (Expand_Interface_Conversion): If the actual is an access type then
8909         build an internal function to handle the displacement. If the actual
8910         is null this function returns null because no displacement is
8911         required; otherwise performs a type conversion that will be
8912         expanded in the code that returns the value of the displaced actual.
8913         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
8914         conversions that have no effect in the generated code because no
8915         displacement is required. Code cleanup; use local variables to
8916         avoid repeated calls to the subprogram directly_designated_type().
8917
8918         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
8919         Classify the primitive operations used in dispatching selects as
8920         predefined.
8921         (Implements_Limited_Interface): Determine whether some type either
8922         directly implements a limited interface or extends a type that
8923         implements a limited interface.
8924         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
8925         (Expand_Subtype_From_Expr): Do not build actual subtype if the
8926         expression is limited.
8927         (Find_Interface_Tag): Add code to handle class-wide types and
8928         entities from the limited-view.
8929
8930         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
8931         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
8932         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
8933         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
8934         Set_Prim_Op_Kind.
8935
8936         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
8937         of procedure name or prefix that appears as a trigger in a triggering
8938         alternative.
8939
8940         * uintp.ads: Introduce constants Uint_11 and Uint_13.
8941
8942 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
8943
8944         * s-tataat.adb, a-tasatt.adb:
8945         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
8946
8947         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
8948         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
8949         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
8950         longer used.
8951
8952 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
8953             Jose Ruiz  <ruiz@adacore.com>
8954
8955         * s-taprop-vxworks.adb:
8956         Move with clauses outside Warnings Off now that dependent units are
8957         Preelaborate.
8958         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
8959         initialization of this unit.
8960         (Specific): Add new procedures Initialize and Delete so that this
8961         package can be used for VxWorks 5.x and 6.x
8962         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
8963         differences between VxWorks 5.x and 6.x
8964         Minor reformatting.
8965         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
8966         caller.
8967         Use only Preelaborate-compatible constructs.
8968
8969         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
8970         Primitives.Operations.
8971         (Delete, Initialize): New procedures.
8972
8973         * s-osinte-vxworks.adb: Body used to handle differences between
8974         VxWorks 5.x and 6.x
8975         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
8976
8977         * s-osinte-vxworks.ads: Minor reformatting.
8978         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
8979         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
8980         and 6.
8981         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
8982         between Vxworks 5 and 6.
8983         (taskLock, taskUnlock): Removeed, no longer used.
8984
8985         * adaint.c: The wait.h header is not located in the sys directory on
8986         VxWorks when using RTPs.
8987         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
8988         using RTPs.
8989         (__gnat_dup): dup is available on Vxworks when using RTPs.
8990         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
8991
8992         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
8993
8994         * expect.c: The wait.h header is not located in the sys directory on
8995         VxWorks when using RTPs.
8996
8997 2005-09-01  Thomas Quinot  <quinot@adacore.com>
8998
8999         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
9000
9001         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
9002
9003         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
9004         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
9005         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
9006         g-soccon-freebsd.ads: Add new constants:
9007          IP_MULTICAST_IF
9008          SO_RCVTIMEO/SO_SNDTIMEO
9009          IOV_MAX
9010
9011         * gen-soccon.c:
9012         Move all target-specific file inclusions and macro definitions to
9013         gsocket.h, in order to ensure that any C code in socket.c will see a
9014         set of constants that is consistent with the contents of g-soccon.ads.
9015
9016         * gsocket.h: Code imported from gen-soccon.c:
9017         Move all target-specific file inclusions and macro definitions to
9018         gsocket.h, in order to ensure that any C code in socket.c will see a set
9019         of constants that is consistent with the contents of g-soccon.ads.
9020         This change also makes gen-soccon self-contained (removing dependencies
9021         upon GCC internal headers).
9022
9023         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
9024         iovecs at a time.
9025         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
9026
9027         * socket.c: Minor reformatting.
9028
9029 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
9030             Thomas Quinot  <quinot@adacore.com>
9031
9032         * fname-sf.adb, mlib-tgt.ads,
9033         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
9034         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
9035         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
9036         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
9037         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
9038         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
9039         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
9040         makegpr.adb: Remove redundant use_clauses.
9041
9042 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
9043
9044         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
9045         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
9046         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
9047         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
9048         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
9049         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
9050         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
9051         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
9052         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
9053         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
9054         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
9055         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
9056         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
9057         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
9058         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
9059         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
9060         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
9061         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
9062         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
9063         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
9064         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
9065         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
9066         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
9067         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
9068         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
9069         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
9070         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
9071         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
9072         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
9073         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
9074         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
9075         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
9076         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
9077         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
9078         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
9079         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
9080         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
9081         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
9082         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
9083         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
9084         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
9085         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
9086         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
9087         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
9088         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
9089         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
9090         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
9091         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
9092         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
9093         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
9094         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
9095         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
9096         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
9097         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
9098         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
9099         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
9100         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
9101         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
9102         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
9103         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
9104         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
9105         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
9106         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
9107         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
9108         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
9109         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
9110         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
9111         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
9112         and always use the no parameter form for consistency.
9113
9114         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
9115
9116 2005-09-01  Robert Dewar  <dewar@adacore.com>
9117
9118         * binde.adb: Minor reformatting
9119         (Find_Elab_Order): Output warning if -p used with static elab order
9120
9121 2005-09-01  Robert Dewar  <dewar@adacore.com>
9122
9123         * checks.adb (Check_Needed): New procedure, deals with removing checks
9124         based on analysis of short-circuited forms. Also generates warnings for
9125         improper use of non-short-circuited forms.
9126         Code clean ups.
9127
9128 2005-09-01  Robert Dewar  <dewar@adacore.com>
9129
9130         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
9131         with 'Valid tests.
9132
9133 2005-09-01  Robert Dewar  <dewar@adacore.com>
9134
9135         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
9136         spec.
9137         Implement new insertion char < (conditional warning)
9138         * errutil.adb, erroutc.adb: Implement new insertion char <
9139         (conditional warning).
9140         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
9141         (Error_Msg_Warn): New variable for < insertion char.
9142         * prj-nmsc.adb: Implement new errout insertion char < (conditional
9143         warning).
9144         (Check_For_Source): Change value of Source_Id only after the current
9145         source has been dealt with.
9146
9147 2005-09-01  Robert Dewar  <dewar@adacore.com>
9148             Doug Rupp  <rupp@adacore.com>
9149
9150         * exp_attr.adb: Handle vax fpt for 'Valid attribute
9151         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
9152         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
9153         (Valid_D, Valid_F, Valid_G): New functions
9154
9155 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
9156             Hristian Kirtchev  <kirtchev@adacore.com>
9157             Javier Miranda  <miranda@adacore.com>
9158
9159         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
9160         from object notation, the original node is unanalyzed and carries no
9161         semantic information, so that accessiblity checks must be performed on
9162         the type of the actual itself.
9163         (Expand_N_Subprogram_Declaration): Change last actual parameter for
9164         compatibility with Build_Protected_Sub_Specification.
9165         (Check_Overriding_Inherited_Interfaces): Add suport to handle
9166         overloaded primitives.
9167         (Register_Interface_DT_Entry): Use the new name of the formal
9168         the the calls to Expand_Interface_Thunk
9169
9170         * exp_dbug.ads: Augment comments on encoding of protected types to
9171         include the generation of dispatching subprograms when the type
9172         implements at least one interface.
9173
9174         * lib.ads: Extend information in Load_Stack to include whether a given
9175         load comes from a Limited_With_Clause.
9176
9177         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
9178         whether a potential circularity is harmless, because it includes units
9179         loaded through a limited_with clause. Extends previous treatment which
9180         did not handle properly arbitrary combinations of limited and
9181         non-limited clauses.
9182
9183 2005-09-01  Nicolas Setton  <setton@adacore.com>
9184
9185         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
9186         to be encoded as typ___XBLU_lowerbound__upperbound instead of
9187         typ___XB_lowerbound__upperbound.
9188
9189 2005-09-01  Thomas Quinot  <quinot@adacore.com>
9190
9191         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
9192         dummy access formal for RACW/RAS TypeCode TSS.
9193         (Build_TypeCode_Call): Do not generate dummy null access actual for
9194         calls to the TypeCode TSS.
9195
9196 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
9197
9198         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
9199         fully qualified name, to distinguish instances with the same local name.
9200
9201         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
9202         fully qualified.
9203
9204 2005-09-01  Robert Dewar  <dewar@adacore.com>
9205
9206         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
9207         packed arrays.
9208
9209 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
9210
9211         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
9212         (Free): New deallocation procedure for filter elements
9213         (Close): Deallocate any existing filter for the concerned connection
9214
9215 2005-09-01  Laurent Pautet  <pautet@adacore.com>
9216
9217         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
9218         position set is provided, we compute one in order to reduce the maximum
9219         length of the keys.  This computation first selects a character
9220         position between 1 and the minimum length of the keys in order to
9221         avoid reducing one of the keys to an empty string.
9222         (Initialize, Compute): When the ratio V to K is too low, the algorithm
9223         does not converge. The initialization procedure now comes with a
9224         maximum number of iterations such that when exceeded, an exception is
9225         raised in Compute. The user can initialize this ratio to another value
9226         and try again
9227         Reformating and updated headers.
9228
9229 2005-09-01  Javier Miranda  <miranda@adacore.com>
9230
9231         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
9232         that given an entity T creates and returns an Itype that duplicates the
9233         contents of T. The returned Itype has the null-exclusion
9234         attribute set to True, and its Etype attribute references T
9235         to keep the association between the two entities.
9236         Update copyright notice
9237
9238         * sem_aggr.adb (Check_Can_Never_Be_Null,
9239         Aggregate_Constraint_Checks, Resolve_Aggregate,
9240         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
9241
9242         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
9243
9244 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
9245             Robert Dewar  <dewar@adacore.com>
9246             Hristian Kirtchev  <kirtchev@adacore.com>
9247
9248         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
9249         Result_Definition.
9250
9251         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
9252         function specs.
9253         Call Set_Result_Definition instead of Set_Subtype_Mark.
9254         (P_Subprogram_Specification): Add parsing of anonymous access result
9255         plus null exclusions. Call Set_Result_Definition instead of
9256         Set_Subtype_Mark.
9257
9258         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
9259         (P_Access_Type_Definition): Add parsing for an anonymous access result
9260         subtype, plus parsing for null exclusions. Call Set_Result_Definition
9261         instead of Set_Subtype_Mark.
9262
9263         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
9264         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
9265         (Result_Definition): New function for N_Function_Specifications.
9266         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
9267         N_Function_Specification.
9268         (Set_Null_Exclusion_Present): Allow this flag for
9269         N_Function_Specification.
9270         (Set_Result_Definition): New procedure for N_Function_Specifications.
9271         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
9272         and N_Function_Specification.
9273
9274         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
9275         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
9276         Add support for LIMITED NEW for Ada 2005 AI-419
9277         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
9278         syntax for anonymous access results.
9279         Replace Subtype_Mark field by Result_Definition in
9280         N_Function_Specification and N_Access_Definition specs.
9281         Add Null_Exclusion_Present to spec of N_Function_Specification.
9282         (Result_Definition): New function for N_Function_Specification and
9283         N_Access_Function_Definition.
9284         (Set_Result_Definition): New procedure for N_Function_Specification and
9285         N_Access_Function_Definition.
9286
9287         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
9288         Result_Definition for cases of N_Access_Function_Definition and
9289         N_Function_Specification.
9290         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
9291
9292 2005-09-01  Vincent Celier  <celier@adacore.com>
9293
9294         * lib-writ.adb: Update Copyright notice
9295         (Write_With_Lines): On platforms where file names are case-insensitive,
9296         record the file names in lower case.
9297         (Write_ALI): For D lines, on platforms where file names are
9298         case-insensitive, record the file names in lower case.
9299
9300 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
9301             Emmanuel Briot  <briot@adacore.com>
9302
9303         * lib-xref.adb (Output_Overridden_Op): Display information on
9304         overridden operation.
9305
9306         * lib-xref.ads: Add documentation on overridden operations.
9307
9308         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
9309         information.
9310
9311         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
9312         overriding entity information.
9313
9314 2005-09-01  Vincent Celier  <celier@adacore.com>
9315
9316         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
9317         including those that are inherited.
9318
9319 2005-09-01  Robert Dewar  <dewar@adacore.com>
9320
9321         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
9322
9323         * par-prag.adb: Implement new pragma Debug_Policy
9324
9325         * sem_prag.adb Implement new pragma Debug_Policy
9326         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
9327         Component_Size attribute specification. Give warning for ignored pragma
9328         Pack.
9329
9330         * snames.h, snames.ads, snames.adb: Introduce entries in
9331         Preset_Names for Name_Disp_Asynchronous_Select,
9332         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
9333         Name_Disp_Timed_Select.
9334         New pragma Debug_Policy
9335
9336         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
9337         explicitly.
9338         Switch -gnata also sets Debug_Pragmas_Enabled
9339
9340         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
9341         handle an explicit -gnata when compiling predefined files.
9342
9343 2005-09-01  Vincent Celier  <celier@adacore.com>
9344
9345         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
9346         directories of projects that have no Ada sources.
9347
9348 2005-09-01  Robert Dewar  <dewar@adacore.com>
9349
9350         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
9351         (makes a difference for wide characters)
9352
9353         * widechar.adb, widechar.ads:
9354         Add Wide_Char_Byte_Count feature to count chars vs bytes
9355
9356 2005-09-01  Thomas Quinot  <quinot@adacore.com>
9357             Ed Schonberg  <schonberg@adacore.com>
9358             Robert Dewar  <dewar@adacore.com>
9359
9360         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
9361         'Address attribute reference with an overloaded prefix, use the
9362         location of the prefix (not the location of the attribute reference) as
9363         the error location.
9364         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
9365         a function renaming thereof, is a valid prefix for 'Size (where it is
9366         intepreted as a function call).
9367         (Statically_Denotes_Entity): New predicate to determine whether the
9368         prefix of an array attribute can be considered static.
9369
9370         PR ada/9087
9371         (Eval_Attr): Fix failure to evaluate Component_Size for
9372         unconstrained arrays (resulted in wrong value in packed case, since
9373         back end cannot handle this case)
9374
9375 2005-09-01  Robert Dewar  <dewar@adacore.com>
9376
9377         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
9378         error msgs for most common cases.
9379         Use new errout insertion char < (conditional warning)
9380
9381 2005-09-01  Javier Miranda  <miranda@adacore.com>
9382             Ed Schonberg  <schonberg@adacore.com>
9383
9384         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
9385         become local to the whole package.
9386         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
9387         the package was already analyzed the new algorithm "replaces" the
9388         real entities by the shadow ones. This is required to ensure that
9389         the order of these entities in the homonym chains does not change;
9390         otherwise we can have undefined references at linking time because
9391         in case of conflicts the external name of the entities will have
9392         a suffix that depends on the order of the entities in the chain.
9393         (Remove_Limited_With_Clause): Complementary code that completes the
9394         new algorithm and replaces the shadow entities by the real ones.
9395         (Install_Limited_Withed_Unit): When unchaining entities before the
9396         installation of the shadow entities, only regular entities of the
9397         public part must be taken into account. This is required to
9398         keep this routine in synch with the work done by Remove_Limited_
9399         With_Clause
9400         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
9401         even if unit is analyzed, because the analysis of the unit is
9402         idempotent in any case, and the limited view of the unit may have to
9403         be installed for proper visibility.
9404         (Expand_Limited_With_Clause): Even if the unit in the implicit
9405         with_clause has been analyzed already, a limited view of the package
9406         must be built for the current context, if it does not exist yet.
9407
9408 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
9409             Javier Miranda  <miranda@adacore.com>
9410             Gary Dismukes  <dismukes@adacore.com>
9411
9412         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
9413         defining entity for the instance body, make a new defining identifier
9414         rather than copying the entity of the spec, to prevent accidental
9415         sharing of the entity list.
9416         (Check_Private_View): When exchanging views of private types, build the
9417         list of exchanged views as a stack, to ensure that on exit the exchanges
9418         are undone in the proper order.
9419         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
9420         Restore the compilation environment in case of instantiation_error.
9421         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
9422         for an anonymous access result.
9423         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
9424         (Formal_Entity): Handle properly the case of a formal package that
9425         denotes a generic package renaming.
9426
9427 2005-09-01  Thomas Quinot  <quinot@adacore.com>
9428
9429         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
9430         clause if the array aggregate is surrounded by parentheses.
9431
9432 2005-09-01  Cyrille Comar  <comar@adacore.com>
9433             Gary Dismukes  <dismukes@adacore.com>
9434             Ed Schonberg  <schonberg@adacore.com>
9435             Javier Miranda  <miranda@adacore.com>
9436
9437         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
9438         underlying type
9439         to check if a type is Constrained in cases related to code generation
9440         (rather than semantic checking) since otherwise we do not generate
9441         similar code for mutable private types depending if their
9442         discriminants are visible or not.
9443         (Check_Abstract_Overriding): Do not complain about failure to override
9444         the primitive operations used in dispatching selects since they will
9445         always be overriden at the freeze point of the type.
9446         (Access_Definition): Separate out handling for resetting the scope
9447         of an anonymous access function result type. Retrieve the scope
9448         of the associated function rather than using Current_Scope, which
9449         does not have a consistent value (depends on whether we're in the
9450         middle of analyzing formal parameters). Add ??? comment about
9451         finding a cleaner way to handle the special cases of scope setting.
9452         (Process_Incomplete_Dependents): A protected operation is never a
9453         dispatching operation (only its wrapper may be).
9454         (Build_Derived_Record_Type): In case of tagged private types that
9455         implement interfaces add derivation of predefined primitive
9456         operations.
9457         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
9458         by two parameters that are used in case of derivation from abstract
9459         interface types: No_Predefined_Prims is used to avoid the derivation
9460         of predefined primitives from the interface, and Predefined
9461         Prims_Only is used to complete the derivation predefined primitives
9462         in case of private tagged types implementing interfaces.
9463         Fix typo in comments
9464         (Find_Interface_In_Descendant): Protect the frontend against
9465         wrong code with large circularity chains.
9466         (Is_Private_Overriding): Add support for entities overriding interface
9467         subprograms. The test failed because Entities associated with overriden
9468         interface subprograms are always marked as hidden (and used to build
9469         the secondary dispatch table); in this case the overriden entity is
9470         available through the field abstract_interface_alias (cf. override_
9471         dispatching_operation)
9472         (Access_Definition): Set the scope of the type to Current_Scope for the
9473         case of a function with an anonymous access result type.
9474         (Access_Subprogram_Declaration): Handle creation of the type entity for
9475         an access-to-function type with an anonymous access result.
9476         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
9477         in handling for N_Access_Function_Definition.
9478         (Analyze_Subtype_Declaration): Modify the text of error message.
9479         (Derived_Type_Declaration): Modify the text of error message.
9480         (Process_Subtype): Modify the text of error message plus cleanup
9481         of one redundant error message.
9482         (Analyze_Component_Declaration): Code cleanup.
9483         (Analyze_Object_Declaration): Code cleanup.
9484         (Analyze_Subtype_Declaration): Propagate the null-exclusion
9485         attribute in case of access types. Code cleanup.
9486         (Array_Type_Declaration): Code cleanup.
9487         (Process_Discriminants): Create the new null-excluding itype
9488         if required. Code cleanup.
9489         (Process_Subtype): Create the new null-excluding itype if
9490         required. Code cleanup.
9491         (Build_Derived_Record_Type): Code cleanup to avoid calling
9492         twice the subprogram derive_subprograms in case of private
9493         types that implement interfaces. In this particular case the
9494         subprogram Complete_Subprograms_Derivation already does the
9495         job associated with the second call.
9496
9497         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
9498         conversion to the full view when generating an operation for a
9499         discriminant whose type may currently be private.
9500
9501 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
9502             Javier Miranda  <miranda@adacore.com>
9503
9504         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
9505         V (Obj.F), the rewriting does not involve the indexed component, but
9506         only the selected component itself.
9507         Do not apply the transformation if the analyzed node is an actual of a
9508         call to another subprogram.
9509         (Complete_Object_Operation): Retain the entity of the
9510         dispatching operation in the selector of the rewritten node. The
9511         entity will be used in the expansion of dispatching selects.
9512         (Analyze_One_Call): Improve location of the error message associated
9513         with interface.
9514         (Analyze_Selected_Component): No need to resolve prefix when it is a
9515         function call, resolution is done when parent node is resolved, as
9516         usual.
9517         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
9518         when attempting to resolve a call transformed from its object notation.
9519         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
9520         of the argument list for each interpretation of the operation.
9521         (Try_Object_Operation): The designated type of an access parameter may
9522         be an incomplete type obtained through a limited_with clause, in which
9523         case the primitive operations of the type are retrieved from its full
9524         view.
9525         (Analyze_Call): If this is an indirect call, and the return type of the
9526         access_to_subprogram is incomplete, use its full view if available.
9527
9528 2005-09-01  Javier Miranda  <miranda@adacore.com>
9529             Gary Dismukes  <dismukes@adacore.com>
9530
9531         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
9532         access types the null-exclusion and access-to-constant attributes must
9533         also match.
9534         (Analyze_Return_Statement): When the result type is an anonymous access
9535         type, apply a conversion of the return expression to the access type
9536         to ensure that appropriate accessibility checks are performed.
9537         (Analyze_Return_Type): For the case of an anonymous access result type,
9538         generate the Itype and set Is_Local_Anonymous_Access on the type.
9539         Add ??? placeholder for check to disallow returning a limited object
9540         in Ada 2005 unless it's an aggregate or a result of a function call.
9541         Change calls from Subtype_Mark to Result_Definition.
9542         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
9543         Result_Definition in call to Make_Function_Specification.
9544         (Build_Body_To_Inline): Change Set_Subtype_Mark to
9545         Set_Result_Definition.
9546         (Make_Inequality_Operator): Change formal Subtype_Mark to
9547         Result_Definition in call to Make_Function_Specification.
9548         (Process_Formals): Create the new null-excluding itype if required.
9549         (New_Overloaded_Entity): For an entity overriding an interface primitive
9550         check if the entity also covers other abstract subprograms in the same
9551         scope. This is required to handle the general case, that is, overriding
9552         other interface primitives and overriding abstract subprograms inherited
9553         from some abstract ancestor type.
9554         (New_Overloaded_Entity): For an overriding entity that comes from
9555         source, note the operation that it overrides.
9556         (Check_Conformance, Type_Conformant): Addition of one new formal
9557         to skip controlling formals in the analysis. This is used to
9558         handle overloading of abstract interfaces.
9559         (Base_Types_Match): Add missing case for types imported from
9560         limited-with clauses
9561         (New_Overloaded_Entity): Add barrier to protect the use of
9562         the "alias" attribute.
9563
9564 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
9565
9566         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
9567         verify that the procedure and the entry are mode conformant.
9568         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
9569         as a different operator, which is often a cut-and-paste error.
9570
9571 2005-09-01  Javier Miranda  <miranda@adacore.com>
9572             Ed Schonberg  <schonberg@adacore.com>
9573
9574         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
9575         used in controlling parameters exclude null because it is necessary to
9576         read the tag to dispatch, and null has no tag.
9577         (Override_Dispatching_Operation): If the previous operation is inherited
9578         from an interface, it becomes hidden  and does not participate in later
9579         name resolution.
9580
9581 2005-09-01  Javier Miranda  <miranda@adacore.com>
9582             Ed Schonberg  <schonberg@adacore.com>
9583             Gary Dismukes  <dismukes@adacore.com>
9584
9585         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
9586         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
9587         the expander will generate the corresponding run-time check to evaluate
9588         the expression.
9589         (Resolve_Call): Check for legal type of procedure name or prefix that
9590         appears as a trigger in a triggering alternative.
9591         (Valid_Conversion): If expression is ambiguous and the context involves
9592         an extension of System, remove System.Address interpretations.
9593         (Resolve_Qualified_Expression): Reject the case of a specific-type
9594         qualification applied to a class-wide argument. Enhance comment
9595         to explain checking of Original_Node.
9596         (Resolve_Type_Conversion): The location of the error message was not
9597         general enough to handle the general case and hence it has been removed.
9598         In addition, this patch improves the text of the message.
9599         (Resolve_Type_Conversion): Add missing support for access to interface
9600         types.
9601         (Resolve_Type_Conversion): If the target is a class-wide interface type,
9602         do not expand if the expression is the actual in a call, because proper
9603         expansion will take place when the call itself is expanded.
9604         (Resolve_Allocator): If the context is an unchecked conversion, the
9605         allocator inherits its storage pool, if any, from the target type of
9606         the conversion.
9607
9608 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
9609             Javier Miranda  <miranda@adacore.com>
9610
9611         * sem_type.adb (Add_One_Interp): If a candidate operation is an
9612         inherited interface operation that has an implementation, use the
9613         implementation to avoid spurious ambiguities.
9614         (Interface_Present_In_Ancestor): In case of concurrent types we can't
9615         use the Corresponding_Record_Typ attribute to look for the interface
9616         because it is set by the expander (and hence it is not always
9617         available). For this reason we traverse the list of interfaces
9618         (available in the parent of the concurrent type).
9619         (Interface_Present_In_Ancestor): Handle entities from the limited view
9620
9621 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
9622
9623         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
9624         from the list of required components.
9625         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
9626         primitive procedure of a limited interface with a controlling first
9627         parameter.
9628         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
9629         of an entry.
9630         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
9631         capture if it is generated in the second operand of a short-circuit
9632         operation.
9633         Do not capture values for variables with address clauses.
9634         (Is_Object_Reference): Treat a function call as an object reference only
9635         if its type is not Standard_Void_Type.
9636
9637 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
9638
9639         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
9640         to a variable that is statically known to be constant.
9641
9642 2005-09-01  Geert Bosch  <bosch@adacore.com>
9643             Robert Dewar  <dewar@adacore.com>
9644
9645         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
9646         (VAXGF_Safe_First): Idem.
9647
9648 2005-09-01  Robert Dewar  <dewar@adacore.com>
9649             Arnaud Charlet  <charlet@adacore.com>
9650
9651         * g-dirope.ads: Minor reformatting
9652         Document that bounds of result of Base_Name match the input index
9653         positions.
9654         Add documentation on environment variable syntax for Expand_Path
9655
9656         * gnat_ugn.texi: Update documentation to include mention of -m switches
9657         Document new treatment of wide characters in max line length
9658         style check.
9659         Remove -gnatL/-gnatZ switches, no longer used.
9660         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
9661         of -gnata switch.
9662
9663         * gnat_rm.texi: Add doc for two argument form of pragma
9664         Float_Representation.
9665         Add documentation for pragma No_Strict_Aliasing
9666         Add note that explicit component clause overrides pragma Pack.
9667         Add documentation of pragma Debug_Policy
9668
9669 2005-09-01  Matthew Heaney  <heaney@adacore.com>
9670
9671         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
9672         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
9673         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
9674         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
9675         draft (Draft 13, August 2005) of Ada Amendment 1.
9676
9677 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
9678
9679         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
9680         Note that the platform-specific version of g-soccon.ads for VMS is now
9681         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
9682         really is a package spec).
9683         Replace s-taspri-linux.ads by s-taspri-posix.ads
9684         Remove references to s-mastop-x86.adb
9685
9686         * system-vxworks-xscale.ads: Removed, no longer used.
9687         * s-vxwork-xscale.ads: Removed, no longer used.
9688
9689 2005-09-01  Robert Dewar  <dewar@adacore.com>
9690
9691         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
9692         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
9693         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
9694         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
9695         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
9696         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
9697         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
9698         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
9699         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
9700         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
9701         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
9702         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
9703         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
9704         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
9705         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
9706         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
9707         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
9708         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
9709         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
9710         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
9711         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
9712
9713 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
9714
9715         PR ada/23187
9716         * adaint.c
9717         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
9718
9719 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
9720             Doug Rupp  <rupp@adacore.com>
9721
9722         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
9723         when needed.
9724         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
9725         this code in the GNAT run-time.
9726
9727         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
9728
9729         PR ada/21053
9730         * init.c (__gnat_error_handler [many]): Mark "msg" as const
9731         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
9732
9733         (__gnat_inside_elab_final_code): Moved here from
9734         Standard_Library and only defined for the compiler.
9735         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
9736         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
9737         using RTPs because directly vectored Interrupt routines are not
9738         supported on this configuration.
9739         (getpid): Do not redefine this function on VxWorks when using RTPs
9740         because this primitive is well supported by the RTP libraries.
9741         (copy_msg): Correct the code that checks for buffer overflow.
9742         Discovered during code reading.
9743
9744 2005-08-29  Olivier Hainque  <hainque@adacore.com>
9745
9746         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
9747         a library level mutable variable with an initializer, tell
9748         build_allocator to ignore the initializer's size. It may not be large
9749         enough for all the values that might be assigned to the variable later
9750         on.
9751
9752 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
9753             Eric Botcazou  <ebotcazou@adacore.com>
9754
9755         * trans.c: Protect < in error msg with quote
9756         Replace GCC_ZCX by Back_End_Exceptions.
9757         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
9758         has been sufficiently aligned in the record.
9759
9760 2005-08-15  James E. Wilson  <wilson@specifix.com>
9761
9762         * system-linux-alpha.ads: Change ia64 to alpha.
9763
9764 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
9765
9766         * decl.c, utils.c: Fix comment typos.
9767
9768 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
9769
9770         * decl.c, init.c, initialize.c: Fix comment typos.
9771
9772 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
9773
9774         Make CONSTRUCTOR use VEC to store initializers.
9775         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
9776         CONSTRUCTOR_ELTS.
9777         * trans.c (extract_values): Likewise.
9778         * utils.c (convert, remove_conversions): Likewise.
9779         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
9780         gnat_build_constructor): Likewise.
9781
9782 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
9783
9784         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
9785         DECL_SECTION_NAME.
9786         (compare_field_bitpos): Likewise.
9787
9788 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
9789
9790         * utils.c (create_var_decl): Only set DECL_COMMON on
9791         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
9792         VAR_OR_FUNCTION_DECL_P.
9793
9794 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
9795
9796         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
9797         removed.
9798
9799 2005-07-07  Pascal Obry  <obry@adacore.com>
9800
9801         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
9802         returned type on Windows.
9803
9804         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
9805         routine.
9806
9807         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
9808         exception in this case.
9809         Simplify the code as "Image (Image'Range)" = "Image".
9810
9811 2005-07-07  Vincent Celier  <celier@adacore.com>
9812
9813         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
9814         the destructor/constructor attributes for <lib>final/<lib>init.
9815
9816         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
9817
9818 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
9819
9820         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
9821         type if the parameter is not passed by copy but reference by default.
9822
9823 2005-07-07  Javier Miranda  <miranda@adacore.com>
9824
9825         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
9826         Reimplementation of the support for abstract interface types in order
9827         to leave the code more clear and easy to maintain.
9828
9829         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
9830         abstract interface types in order to leave the code clearer and easier
9831         to maintain.
9832
9833         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
9834         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
9835         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
9836         appropriate entry of the secondary dispatch table.
9837         (Make_DT): Add code to inherit the secondary dispatch tables of
9838         the ancestors.
9839
9840         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
9841         implementing both functionalities by means of a common routine, each
9842         routine has its own code.
9843
9844 2005-07-07  Javier Miranda  <miranda@adacore.com>
9845
9846         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
9847
9848         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
9849         types:
9850         --
9851           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
9852         --
9853
9854         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
9855         use of tag incomplete types.
9856
9857         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
9858         give support to tagged incomplete types.
9859
9860         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
9861         expression is a discriminant reference and its type is private, as can
9862         happen within a stream operation for a mutable record, use the full
9863         view of the type to resolve the case alternatives.
9864         (Analyze_Assignment): Check wrong dereference of incomplete types.
9865
9866         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
9867         types.
9868
9869         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
9870         incomplete types.
9871
9872         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
9873         N_Incomplete_Type_Declaration nodes.
9874
9875         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
9876         Tag_Present to give support to tagged incomplete types:
9877         --
9878           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
9879         --
9880
9881 2005-07-07  Olivier Hainque  <hainque@adacore.com>
9882
9883         PR ada/22301
9884         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
9885         definitions for the Unwind wrappers in the compiler case.
9886
9887 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
9888             Javier Miranda  <miranda@adacore.com>
9889
9890         * par-load.adb (Load): If a child unit is loaded through a limited_with
9891         clause, each parent must be loaded as a limited unit as well.
9892
9893         * sem_ch10.adb (Previous_Withed_Unit): Better name for
9894         Check_Withed_Unit. Return true if there is a previous with_clause for
9895         this unit, whether limited or not.
9896         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
9897         the current unit.
9898         (Is_Visible_Through_Renamings): New local subprogram of install_limited
9899         _withed_unit that checks if some package installed through normal with
9900         clauses has a renaming declaration of package whose limited-view is
9901         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
9902         of the current Draft document for Ada 2005.
9903         (Analyze_Context): Complete the list of compilation units that
9904         are allowed to contain limited-with clauses. It also contains
9905         checks that were previously done by Install_Limited_Context_Clauses.
9906         This makes the code more clear and easy to maintain.
9907         (Expand_Limited_With_Clause) It is now a local subprogram of
9908         Install_Limited_Context_Clauses, and contains the code that adds
9909         the implicit limited-with clauses for parents of child units.
9910         This functionality was prevously done by Analyze_Context.
9911
9912         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
9913         incomplete type.
9914
9915         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
9916         been erroneously named in a limited-with clause of its own context.
9917         In this case the error has been previously notified by Analyze_Context.
9918
9919 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
9920
9921         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
9922         generic package that contains local declarations with the same name.
9923         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
9924
9925 2005-07-07  Bernard Banner  <banner@adacore.com>
9926
9927         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
9928         ia64 platform only on platforms that you the GCC unwind library
9929         rather than the system unwind library.
9930
9931 2005-07-07  Thomas Quinot  <quinot@adacore.com>
9932
9933         * expect.c: Minor reformatting
9934
9935 2005-07-07  Sergey Rybin  <rybin@adacore.com>
9936
9937         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
9938         --no-separate-is
9939
9940         * gnat_ugn.texi: Add description for new gnatpp option
9941         (--no-separate-is)
9942
9943 2005-07-04  Thomas Quinot  <quinot@adacore.com>
9944
9945         * g-expect-vms.adb, g-expect.ads, g-expect.adb
9946         (Get_Command_Output): New subprogram to launch a process and get its
9947         standard output as a string.
9948
9949 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
9950             Olivier Hainque  <hainque@adacore.com>
9951
9952         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
9953         fetch a code-range descriptor associated with the machine state. On
9954         failure set the machine state's PC to 0; on success, pass the
9955         descriptor to exc_virtual_unwind.
9956
9957         * init.c (Tru64 section): New function __gnat_set_code_loc.
9958
9959 2005-07-04  Vincent Celier  <celier@adacore.com>
9960
9961         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
9962         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
9963         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
9964         Remove all auto-initialization code, as this is now done through the
9965         constructor mechanism.
9966
9967         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
9968         __gnat_sals_init_using_constructors): New functions.
9969
9970         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
9971         Linker_Constructor and Linker_Destructor when switch -a is used.
9972
9973         * bindusg.adb: Add line for new switch -a
9974
9975         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
9976         (Gnatbind): When switch -a is used, check if it is allowed
9977
9978         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
9979
9980 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
9981
9982         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
9983         This prevents us from hitting a limitation during the debug info
9984         generation when using stabs.
9985         (Prims_Ptr): Likewise.
9986
9987 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
9988             Ed Schonberg  <schonberg@adacore.com>
9989             Javier Miranda  <miranda@adacore.com>
9990
9991         * checks.adb (Null_Exclusion_Static_Checks): In the case of
9992         N_Object_Declaration, only perform the checks if the Object_Definition
9993         is not an Access_Definition.
9994
9995         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
9996         where the parent of an the access definition is an N_Object_Declaration
9997         when determining the Associated_Node_For_Itype and scope of an
9998         anonymous access-to-subprogram type.
9999
10000         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
10001         Corresponding_Spec on the body created for a null procedure. Add ???
10002         comment. Remove New_Copy_Tree call on body argument to
10003         Set_Body_To_Inline.
10004
10005         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
10006         discriminants, use the type of the actual as well, because the
10007         discriminants may be read by the called subprogram.
10008
10009         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
10010         access type we do not need to handle non-limited views.
10011         (Build_Derived_Record_Type): Additional check to check that in case of
10012         private types, interfaces are only allowed in private extensions.
10013
10014 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
10015
10016         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
10017         <Pragma_Linker_Destructor>: Likewise.
10018
10019         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
10020         Pragma_Linker_Destructor.
10021
10022         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
10023         ATTR_LINK_DESTRUCTOR.
10024         (static_ctors, static_dtors): New variables.
10025
10026         * misc.c (gnat_expand_body): Output current function as constructor
10027         and destructor if requested.
10028
10029         * par-prag.adb: Add processing for pragma Linker_Constructor and
10030         Linker_Destructor.
10031
10032         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
10033         extracted from Check_Interrupt_Or_Attach_Handler.
10034         (Check_Interrupt_Or_Attach_Handler): Invoke it.
10035         Implement pragma Linker_Constructor and Linker_Destructor with the
10036         help of Find_Unique_Parameterless_Procedure.
10037         Replace Name_Alias with Name_Target for pragma Linker_Alias.
10038
10039         * snames.h, snames.ads, snames.adb:
10040         Add Name_Linker_Constructor and Name_Linker_Destructor.
10041         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
10042         * snames.adb: Remove Name_Alias.
10043
10044         * trans.c: Include cgraph.h.
10045         (build_global_cdtor): New function.
10046         (Compilation_Unit_to_gnu): Build global constructor and destructor if
10047         needed.
10048         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
10049         of objects too.
10050         (addressable_p) <COMPONENT_REF>: Unconditionally test
10051         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
10052
10053         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
10054         variable if it is external.
10055
10056         (static_ctors, static_dtors): New global variables.
10057         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
10058         <ATTR_LINK_DESTRUCTOR>: Likewise.
10059         (end_subprog_body): Chain function as constructor and destructor
10060         if requested.
10061
10062         * exp_util.adb (Force_Evaluation): Unconditionally invoke
10063         Remove_Side_Effects with Variable_Ref set to true.
10064         (Remove_Side_Effects): Handle scalar types first. Use a renaming
10065         for non-scalar types even if Variable_Ref is true and for class-wide
10066         expressions.
10067
10068 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
10069
10070         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
10071         to prevent spurious warnings.
10072
10073 2005-07-04  Thomas Quinot  <quinot@adacore.com>
10074
10075         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
10076         Itypes. Itypes are really unexpected there.
10077         (Build_TypeCode_Function): Generalise special processing for Itypes to
10078         handle the case of numeric implicit base types as well as enumerated
10079         ones.
10080
10081 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
10082
10083         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
10084         controlled, indicate the expected type of the dereference that is
10085         created for the call to Deep_Finalize, to prevent spurious errors when
10086         the designated type is private and completed with a derivation from
10087         another private type.
10088
10089 2005-07-04  Vincent Celier  <celier@adacore.com>
10090
10091         * make.adb (Change_To_Object_Directory): When unable to change the
10092         current dir to the object directory, output the full path of the
10093         directory.
10094
10095 2005-07-04  Matthew Gingell  <gingell@adacore.com>
10096
10097         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
10098
10099         * indepsw-linux.adb: Replace by...
10100
10101         * indepsw-gnu.adb: ...this new file
10102
10103 2005-07-04  Vincent Celier  <celier@adacore.com>
10104
10105         * mlib-prj.adb (Auto_Initialize): New constant String
10106         (SALs_Use_Constructors): New Boolean function
10107         (Build_Library): Call gnatbind with Auto_Initialize switch when
10108         SALs_Use_Constructors returns True.
10109
10110         * mlib-tgt.ads: Minor reformatting
10111
10112         * mlib-utl.ads: Minor reformatting
10113
10114         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
10115
10116 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
10117
10118         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
10119         single protected declarations can have an interface list.
10120         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
10121         with seriously malformed entry declarations, and lead to compilation
10122         abandoned messages.
10123
10124 2005-07-04  Javier Miranda  <miranda@adacore.com>
10125
10126         * par-load.adb: Load the context items in two rounds.
10127
10128 2005-07-04  Robert Dewar  <dewar@adacore.com>
10129
10130         * scng.adb: Do not consider Mod used as an attribute to be a keyword
10131
10132 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
10133             Javier Miranda  <miranda@adacore.com>
10134
10135         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
10136         type extension needs a limited view.
10137         Remove previous restriction on private types available through the
10138         limited-view (only tagged private types were previously allowed).
10139         (Install_Withed_Unit): In the code that implements the
10140         legality rule given in AI-377, exclude a child unit with the name
10141         Standard, because it is a homonym of the Standard environment package.
10142
10143 2005-07-04  Thomas Quinot  <quinot@adacore.com>
10144
10145         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
10146         overloaded function call, carry interpretations from the original tree
10147         to the copy.
10148
10149 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
10150
10151         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
10152         types check whether some designated type is a limited view, and use
10153         the non-limited view if available.
10154
10155 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
10156
10157         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
10158         constraint of full view of a private view T1 if present, when T2 is a
10159         discriminated full view.
10160
10161 2005-07-04  Thomas Quinot  <quinot@adacore.com>
10162
10163         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
10164         actual that is a view conversion of a bit packed array reference.
10165
10166 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
10167
10168         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
10169         present before checking whether an interface type covers a synchronized
10170         type.
10171
10172 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
10173
10174         * sem_util.adb (Is_Object_Reference): An indexed or selected component
10175         whose prefix is an implicit dereference is an object reference. Removes
10176         spurious errors when compiling with -gnatc.
10177
10178 2005-07-04  Robert Dewar  <dewar@adacore.com>
10179
10180         PR ada/22039
10181         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
10182
10183 2005-07-04  Matthew Gingell  <gingell@adacore.com>
10184
10185         * tracebak.c: Enable tracebacks on ia64 platforms
10186
10187 2005-07-04  Vincent Celier  <celier@adacore.com>
10188
10189         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
10190         the GNAT BIND command, as gnatbind accepts multiples ALI files with
10191         the -L or -n switches.
10192
10193 2005-07-04  Vincent Celier  <celier@adacore.com>
10194
10195         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
10196         correctly computed and the main project data is not modified while
10197         doing so.
10198         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
10199         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
10200         c++linker as this does not work on some platforms.
10201
10202 2005-07-04  Matthew Heaney  <heaney@adacore.com>
10203
10204         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
10205         was changed.
10206         * a-coinve.adb: Perform constraint checks explicitly.
10207
10208 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10209             Thomas Quinot  <quinot@adacore.com>
10210
10211         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
10212         new target gen-soccon.
10213
10214 2005-07-04  Robert Dewar  <dewar@adacore.com>
10215
10216         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
10217
10218 2005-07-04  Thomas Quinot  <quinot@adacore.com>
10219
10220         * g-socket.ads (Check_Selector): Minor rewording of comment.
10221
10222 2005-07-04  Vincent Celier  <celier@adacore.com>
10223
10224         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
10225
10226 2005-07-04  Thomas Quinot  <quinot@adacore.com>
10227
10228         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
10229
10230 2005-07-04  Sergey Rybin  <rybin@adacore.com>
10231
10232         * gnat_ugn.texi: Add description of --eol gnatpp option
10233
10234 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
10235             Thomas Quinot  <quinot@adacore.com>
10236
10237         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
10238         if the user wants all calls of a subprogram to be flagged,
10239         independently of whether they are made from within the same unit or
10240         another unit.
10241         Mention restriction for pragma Linker_Alias on some platforms.
10242         Document pragma Linker_Constructor and Linker_Destructor.
10243         Rewrite documentation of Weak_External, Linker_Section and
10244         Linker_Alias pragmas.
10245
10246 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
10247
10248         * s-stausa.ads, s-stausa.adb: New files.
10249
10250 2005-06-30  Kelley Cook
10251
10252         * all files:  Update FSF address in copyright headers.
10253         * gen-soccon.co (main): Output new FSF address in generated files.
10254
10255 2005-06-28  Paul Brook  <paul@codesourcery.com>
10256
10257         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
10258
10259 2005-06-14  Olivier Hainque  <hainque@adacore.com>
10260             Eric Botcazou  <ebotcazou@adacore.com>
10261
10262         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
10263         exc_unwind, now that we are generating proper .debug_frame output for
10264         that target.
10265
10266         * tracebak.c: Remove the mips-irix section, as we are now using the
10267         s-mastop based unwinder again.
10268         Under SPARC/Solaris, take into account the stack bias to compute the
10269         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
10270         ABI.
10271
10272 2005-06-14  Doug Rupp  <rupp@adacore.com>
10273
10274         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
10275
10276         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
10277
10278 2005-06-14  Pascal Obry  <obry@adacore.com>
10279
10280         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
10281         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
10282         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
10283         package name).
10284
10285         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
10286         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
10287         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
10288         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
10289         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
10290         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
10291         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
10292         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
10293         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
10294         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
10295         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
10296         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
10297         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
10298         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
10299         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
10300         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
10301         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
10302         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
10303         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
10304         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
10305         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
10306         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
10307         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
10308         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
10309         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
10310         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
10311         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
10312         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
10313         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
10314         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
10315         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
10316         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
10317         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
10318         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
10319         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
10320         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
10321         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
10322         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
10323         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
10324         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
10325         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
10326         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
10327         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
10328         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
10329         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
10330         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
10331         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
10332         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
10333         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
10334         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
10335         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
10336         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
10337         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
10338         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
10339         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
10340         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
10341         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
10342         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
10343         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
10344         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
10345         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
10346         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
10347         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
10348         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
10349         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
10350         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
10351         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
10352         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
10353         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
10354         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
10355         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
10356         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
10357         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
10358         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
10359         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
10360         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
10361         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
10362         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
10363         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
10364         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
10365         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
10366         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
10367         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
10368         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
10369         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
10370         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
10371         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
10372         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
10373         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
10374         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
10375         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
10376         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
10377         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
10378         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
10379         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
10380         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
10381         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
10382         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
10383         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
10384         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
10385         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
10386         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
10387         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
10388         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
10389         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
10390         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
10391         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
10392         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
10393         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
10394         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
10395         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
10396         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
10397         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
10398         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
10399         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
10400         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
10401         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
10402         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
10403         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
10404         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
10405         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
10406         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
10407         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
10408         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
10409         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
10410         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
10411         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
10412         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
10413         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
10414         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
10415         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
10416         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
10417         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
10418
10419 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
10420             Arnaud Charlet  <charlet@adacore.com>
10421
10422         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
10423         longer protected objects. They have been replaced by lower-level
10424         suspension objects made up by a mutex and a condition variable (or
10425         their equivalent given a particular OS) plus some internal data to
10426         reflect the state of the suspension object.
10427         (Initialize, Finalize): Add this initialization procedure for
10428         Suspension_Object, which is a controlled type.
10429         (Finalize): Add the finalization procedure for Suspension_Object,
10430         which is a controlled type.
10431
10432         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
10433         Ada.Synchronous_Task_Control because there is no longer a need for a
10434         VxWorks specific version of this package. Target dependencies
10435         has been moved to System.Task_Primitives.Operations.
10436
10437         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
10438         longer needed.
10439         (InitializeCriticalSection, EnterCriticalSection,
10440         LeaveCriticalSection, DeleteCriticalSection): Replace the type
10441         pCriticalSection by an anonymous access type so that we avoid problems
10442         of accessibility to local objects.
10443
10444         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
10445         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
10446         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
10447         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
10448         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
10449         set the environment task mask here.
10450         (Current_State): Add this function that returns the state of the
10451         suspension object.
10452         (Set_False): Add this procedure that sets the state of the suspension
10453         object to False.
10454         (Set_True): Add this procedure that sets the state of the suspension
10455         object to True, releasing the task that was suspended, if any.
10456         (Suspend_Until_True): Add this procedure that blocks the calling task
10457         until the state of the object is True. Program_Error is raised if
10458         another task is already waiting on that suspension object.
10459         (Initialize): Add this procedure for initializing the suspension
10460         object. It initializes the mutex and the condition variable which are
10461         used for synchronization and queuing, and it sets the internal state
10462         to False.
10463         (Finalize): Add this procedure for finalizing the suspension object,
10464         destroying the mutex and the condition variable.
10465
10466         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
10467         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
10468         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
10469         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
10470         which provides a low-level abstraction (using operating system
10471         primitives) for Ada.Synchronous_Task_Control.
10472         This object is made up by a mutex (for ensuring mutual exclusion), a
10473         condition variable (for queuing threads until the condition is
10474         signaled), a Boolean (State) indicating whether the object is open,
10475         and a Boolean (Waiting) reflecting whether there is a task already
10476         suspended on this object.
10477
10478         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
10479         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
10480         s-intman-vms.ads, s-intman-mingw.adb,
10481         (Initialize_Interrupts): Removed, no longer used.
10482
10483         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
10484         (Setup_Interrupt_Mask): New procedure.
10485
10486         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
10487
10488         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
10489
10490         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
10491         this is no longer done in the body of s-taprop
10492         (Server_Task): Explicitely test for Pending_Action in case
10493         System.Parameters.No_Abort is True.
10494
10495         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
10496         is no longer done in the body of s-taprop
10497
10498 2005-06-14  Robert Dewar  <dewar@adacore.com>
10499
10500         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
10501         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
10502         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
10503         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
10504         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
10505         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
10506         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
10507         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
10508         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
10509         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
10510         system-linux-hppa.ads, system-vms_64.ads,
10511         system-vxworks-alpha.ads: Minor comment update for
10512         AI-362 (unit is Pure).
10513
10514         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
10515         Add pragma Pure_05 for AI-362
10516         Make remaining conversion functions obsolescent in Ada 95
10517
10518         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
10519         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
10520         Add entries for a-wichun and a-zchuni
10521         Add a-widcha a-zchara for AI-395
10522         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
10523
10524         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
10525         Add entries for a-wichun.o and a-zchuni.o
10526         Entries for a-widcha.o and a-zchara.o
10527         Add entry for a-chacon.o
10528
10529         * a-ztenau.adb: Add with of Ada.Characters.Conversions
10530
10531         * a-chacon.ads, a-chacon.adb: New files.
10532
10533         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
10534         categorization violations.
10535
10536         * a-strmap.ads: Add pragma Pure_05 for AI-362
10537         * a-strmap.ads: Add note on implicit categorization for AI-362
10538
10539         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
10540
10541         * par-prag.adb: Dummy entry for pragma Persistent_BSS
10542         Set Ada_Version_Explicit, for implementation of AI-362
10543         Add processing for pragma Pure_05 and Preelaborate_05
10544         Add entry for Assertion_Policy pragma
10545
10546         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
10547         when needed for proper processing of categorization stuff
10548
10549         * sem_cat.adb:
10550         For several cases, make errors in preealborate units warnings,
10551         instead of errors, if GNAT_Mode is set. For AI-362.
10552
10553         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
10554         preelaborate unit is now warning if in GNAT mode
10555
10556         * s-stoele.ads: Document AI-362 for pragma preelaborate
10557
10558 2005-06-14  Doug Rupp  <rupp@adacore.com>
10559
10560         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
10561         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
10562         Default_Exception_Msg_Max_Length: new parameter.
10563
10564         * a-except.ads: (Exception_Msg_Max_Length): Set to
10565         System.Parameters.Default_Exception_Msg_Max_Length
10566         Add pragma Preelaborate_05 for AI-362
10567         Add warnings off to allow categorization violations for AI-362
10568
10569 2005-06-14  Vincent Celier  <celier@adacore.com>
10570
10571         * gnatsym.adb: Adapt to modification of package Symbols: procedure
10572         Process is now in package Processing.
10573
10574         * symbols.ads, symbols.adb:
10575         (Processing): New package, containing procedure Process
10576
10577         * symbols-vms-alpha.adb:
10578         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
10579
10580         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
10581         symbols-processing-vms-ia64.adb: New files.
10582
10583 2005-06-14  Pascal Obry  <obry@adacore.com>
10584
10585         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
10586         implementation. This new version generates the proper DllMain routine
10587         to initialize the SAL. The DllMain is generated in Ada and compiled
10588         before being added as option to the library build command.
10589
10590 2005-06-14  Doug Rupp  <rupp@adacore.com>
10591             Pascal Obry  <obry@adacore.com>
10592
10593         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
10594         call to decc$translate_vms.
10595         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
10596         need to remove those quotes before catenating the filename.
10597         (__gnat_locate_exec_on_path): improvements to the Win32 section:
10598         * avoid allocating the memory twice for better efficiency;
10599         * allocate 32K buffer for environment expansion as suggested by MSDN;
10600         * prepend ".;" to the path so that current directory is searched too.
10601
10602 2005-06-14  Robert Dewar  <dewar@adacore.com>
10603
10604         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
10605         instead of raising CE (AI-241)
10606         Add warnings off to allow categorization violations for AI-362
10607
10608 2005-06-14  Robert Dewar  <dewar@adacore.com>
10609
10610         * ali-util.adb, gnatbind.adb: Remove references to
10611         Force_RM_Elaboration_Order.
10612
10613         * switch-b.adb: Remove recognition of -f switch
10614
10615 2005-06-14  Pascal Obry  <obry@adacore.com>
10616
10617         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
10618         implementation which is slightly more efficient.
10619
10620 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
10621             Javier Miranda  <miranda@adacore.com>
10622             Ed Schonberg  <schonberg@adacore.com>
10623             Hristian Kirtchev  <kirtchev@adacore.com>
10624
10625         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
10626         allocator's designated type is a class-wide type, and compiling for
10627         Ada 2005, emit a run-time check that the accessibility level of the
10628         type given in the allocator's expression is not deeper than the level
10629         of the allocator's access type.
10630
10631         (Tagged_Membership): Modified to gives support to abstract interface
10632         types.
10633
10634         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
10635         Access_Level.
10636         (Descendant_Tag): New predefined function
10637         (Is_Descendant_At_Same_Level): New predefined function
10638         (Get_Access_Level): New private function
10639         (Set_Access_Level): New private procedure
10640         (IW_Membership): New function. Given the tag of an object and the tag
10641         associated with an interface, evaluate if the object implements the
10642         interface.
10643         (Register_Interface_Tag): New procedure used to initialize the table of
10644         interfaces used by the IW_Membership function.
10645         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
10646         of the dispatch table.
10647         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
10648         table of interfaces of the parent.
10649         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
10650         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
10651         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
10652         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
10653         Ada 2005 semantics for the new predefined function.
10654
10655         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
10656         call to Descendant_Tag rather than Internal_Tag.
10657         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
10658         the accessibility level of the attribute's Item parameter is not deeper
10659         than the level of the attribute's prefix type. Tag_Error is raised if
10660         the check fails. The check is only emitted for Ada_05.
10661         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
10662         requested stream attribute, use it.
10663         (Expand_N_Attribute_Reference): If the designated type is an interface
10664         then rewrite the referenced object as a conversion to force the
10665         displacement of the pointer to the secondary dispatch table.
10666         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
10667         is a dereference of an object with a constrained partial view.
10668
10669         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
10670         type is a class-wide type, emit a run-time check that the accessibility
10671         level of the returned object is not deeper than the level of the
10672         function's master (only when compiling for Ada 2005).
10673
10674         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
10675         Action_Nb_Arg): Add entries for new Get_Access_Level and
10676         Set_Access_Level routines in these tables.
10677         (Make_DT): Generate a call to set the accessibility level of the
10678         tagged type in its TSD.
10679         (Make_DT): Code cleanup. The functionality of generating all the
10680         secondary dispatch tables has been moved to freeze_record_type.
10681         (Make_Abstract_Interface_DT): Minor code cleanup.
10682         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
10683         this subprogram implements a new algorithm that provides the
10684         same functionality and it is more clear in case of primitives
10685         associated with abstract interfaces.
10686         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
10687         clean up, the functionality of this subprogram is now provided
10688         by Set_All_DT_Position.
10689         (Write_DT): New subprogram: a debugging procedure designed to be called
10690         within gdb to display the dispatch tables associated with a tagged
10691         type.
10692         (Collect_All_Interfaces): New subprogram that collects the whole list
10693         of interfaces that are directly or indirectly implemented by a tagged
10694         type.
10695         (Default_Prim_Op_Position): New subprogram that returns the fixed
10696         position in the dispatch table of the default primitive operations.
10697         (Expand_Interface_Actuals): New subprogram to generate code that
10698         displaces all the actuals corresponding to class-wide interfaces to
10699         reference the interface tag of the actual object.
10700         (Expand_Interface_Conversion): New subprogram. Reference the base of
10701         the object to give access to the interface tag associated with the
10702         secondary dispatch table.
10703         (Expand_Interface_Thunk): New subprogram that generates the code of the
10704         thunk. This is required for compatibility with the C+ ABI.
10705         (Make_Abstract_Interface_DT): New subprogram that generate the
10706         declarations for the secondary dispatch tables associated with an
10707         abstract interface.
10708         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
10709         attribute for each primitive operation covering interface subprograms
10710         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
10711         These subprograms were upgraded to give support to abstract interfaces
10712
10713         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
10714         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
10715         RE_Set_Access_Level.
10716         (RE_Unit_Table): Add entries for new Ada.Tags operations.
10717         Add support to call the followig new run-time subprograms:
10718         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
10719
10720         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
10721         match its full declaration when both have an access definition with
10722         statically matching designated subtypes.
10723         (Analyze_Component_Declaration): Delete commented out code that was
10724         incorrectly setting the scope of an anonymous access component's type.
10725         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
10726         an access discriminant when the containing type is nonlimited.
10727         (Make_Incomplete_Type_Declaration): Create an incomplete type
10728         declaration for a record type that includes self-referential access
10729         components.
10730         (Check_Anonymous_Access_Types): Before full analysis of a record type
10731         declaration, create anonymous access types for each self-referential
10732         access component.
10733         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
10734         an access component in this context is a Local_Anonymous_Access, for
10735         proper accessibility checks.
10736         (Access_Definition): Set properly the scope of the anonymous access type
10737         created for a stand-alone access object.
10738         (Find_Type_Of_Object): An object declaration may be given with an access
10739         definition.
10740         (Complete_Subprograms_Derivation): New subprogram used to complete
10741         type derivation of private tagged types implementing interfaces.
10742         In this case some interface primitives may have been overriden
10743         with the partial-view and, instead of re-calculating them, they
10744         are included in the list of primitive operations of the full-view.
10745         (Build_Derived_Record_Type): Modified to give support to private
10746         types implemening interfaces.
10747         (Access_Definition): Reject ALL on anonymous access types.
10748         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
10749         type derivation to occur at a deeper accessibility level than the
10750         parent type.
10751         For the case of derivation within a generic body however, disallow the
10752         derivation if the derived type has an ancestor that is a formal type
10753         declared in the formal part of an enclosing generic.
10754         (Analyze_Object_Declaration): For protected objects, remove the check
10755         that they cannot contain interrupt handlers if not declared at library
10756         level.
10757         (Add_Interface_Tag_Components): New subprogram to add the tag components
10758         corresponding to all the abstract interface types implemented by a
10759         record type or a derived record type.
10760         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
10761         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
10762         Process_Full_View, Record_Type_Declaration): Modified to give
10763         support to abstract interface types
10764         (Collect_Interfaces): New subprogram that collects the list of
10765         interfaces that are not already implemented by the ancestors
10766         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
10767         when partial view has no discriminants and full view has defaults.
10768         (Constrain_Access): Reject a constraint on a general access type
10769         if the discriminants of the designated type have defaults.
10770         (Access_Subprogram_Declaration): Associate the Itype node with the inner
10771         full-type declaration or subprogram spec. This is required to handle
10772         nested anonymous declarations.
10773         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
10774         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
10775         Process_Full_View, Record_Type_Declaration): Modified to give
10776         support to abstract interface types
10777         (Derive_Subprograms): Addition of a new formal to indicate if
10778         we are in the case of an abstact-interface derivation
10779         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
10780         to the specification because it is requied to analyze all the
10781         identifiers found in a list of interfaces
10782
10783         * debug.adb: Complete documentation of flag "-gnatdZ"
10784
10785         * exp_ch3.adb: Implement config version of persistent_bss pragma
10786         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
10787         testing for TSS presence to properly enforce visibility rules.
10788         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
10789         Make_Abstract_Interfaces_DT to generate the secondary tables
10790         associated with abstract interfaces.
10791         (Build_Init_Procedure): Modified to initialize all the tags
10792         corresponding.
10793         (Component_Needs_Simple_Initialization): Similar to other tags,
10794         interface tags do not need initialization.
10795         (Freeze_Record_Type): Modified to give support to abstract interface
10796         types.
10797         (Expand_N_Object_Declaration): Do not generate an initialization for
10798         a scalar temporary marked as internal.
10799
10800         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
10801         in-out parameter that is a component in an initialization procedure,
10802         whose constraint might depend on discriminants, and that may be
10803         misaligned because of packing or representation clauses.
10804         (Is_Legal_Copy): New predicate to determine whether a possibly
10805         misaligned in-out actual can actually be passed by copy/return. This
10806         is an error in case the type is by_reference, and a warning if this is
10807         the consequence of a DEC import pragma on the subprogram.
10808         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
10809         interface types
10810         (Expand_Inlined_Call): Mark temporary generated for the return value as
10811         internal, so that no useless scalar normalization is generated for it.
10812         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
10813         null procedure can always be inlined.
10814         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
10815         procedure, generate an explicit empty body for it.
10816
10817         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
10818         Given a type implementing an interface, returns the corresponding
10819         access_disp_table value.
10820         (Find_Interface_Tag): New subprogram. Given a type implementing an
10821         interface, returns the record component containing the tag of the
10822         interface.
10823         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
10824         previous ones that return the corresponding tag and access_disp_table
10825         entities.
10826         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
10827         is a predefined primitive operation.
10828         (Expand_Subtype_From_Expr): If the expression is a selected component
10829         within an initialization procedure, compute its actual subtype, because
10830         the component may depend on the discriminants of the enclosing record.
10831
10832         * i-cpp.ads, i-cpp.adb:
10833         This package has been left available for compatibility with previous
10834         versions of the frontend. As part of the new layout this is now a
10835         dummy package that uses declarations available at a-tags.ads
10836
10837         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
10838         "constant access" and "aliased [constant] access" when not compiling
10839         with -gnat05.
10840         Suppress Ada 2005 keyword warning if -gnatwY used
10841         (P_Identifier_Declarations): Add support for object declarations with
10842         access definitions.
10843         (Private_Extension_Declaration): Complete the documentation
10844         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
10845         attribute in case of private extension declaration
10846         (P_Type_Declaration): Mark as "abstract" the type declarations
10847         corresponding with protected, synchronized and task interfaces
10848         (P_Declarative_Items): "not" and "overriding" are overriding indicators
10849         for a subprogram or instance declaration.
10850
10851         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
10852         instantiation that is a dispatching operation has controlling access
10853         parameters that are null excluding.
10854         Save and restore Ada_Version_Explicit, for implementation of AI-362
10855         (Validate_Derived_Type_Instance): Add check for abstract interface
10856         types.
10857         (Analyze_Formal_Package): Establish Instantiation source for the copy of
10858         the generic that is created to represent the formal package.
10859         (Analyze_Package_Instantiation): Instantiate body immediately if the
10860         package is a predefined unit that contains inlined subprograms, and
10861         we are compiling for a Configurable_Run_Time.
10862         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
10863         If the program has a null default, generate an empty body for it.
10864
10865         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
10866         error message condition, null procedures are correctly detected now.
10867         (New_Overloaded_Entity): Bypass trivial overriding indicator check
10868         for subprograms in the context of protected types. Instead, the
10869         indicator is examined in Sem_Ch9 while analysing the subprogram
10870         declaration.
10871         (Check_Overriding_Indicator): Check consistency of overriding indicator
10872         on subprogram stubs as well.
10873         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
10874         the library level.
10875         (Analize_Subprogram_Specification): When analyzing a subprogram in which
10876         the type of the first formal is a concurrent type, replace this type
10877         by the corresponding record type.
10878         (Analyze_Subprogram_Body): Undo the previous work.
10879         (Analyze_Procedure_Call): If the call has the form Object.Op, the
10880         analysis of the prefix ends up analyzing the call itself, after which
10881         we are done.
10882         (Has_Interface_Formals): New subprogram subsidiary to analyze
10883         subprogram_specification that returns true if some non
10884         class-wide interface subprogram is found
10885         (New_Overloaded_Entity): Modified to give support to abstract
10886         interface types
10887         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
10888         access to subprograms must be recursive.
10889         (Is_Unchecked_Conversion): Improve the test that recognizes
10890         instantiations of Unchecked_Conversion, and allows them in bodies that
10891         are to be inlined by the front-end. When the body comes from an
10892         instantiation, a reference to Unchecked_Conversion will be an
10893         Expanded_Name, even though the body has not been analyzed yet.
10894         Replace Is_Overriding and Not_Overriding in subprogram_indication with
10895         Must_Override and Must_Not_Override, to better express intent of AI.
10896         (Analyze_Subprogram_Body): If an overriding indicator is given, check
10897         that it is consistent with the overrinding status of the subprogram
10898         at this point.
10899         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
10900         always inlined.
10901         If the subprogram is a null procedure, indicate that it does not need
10902         a completion.
10903
10904         * sem_disp.adb (Check_Controlling_Type): Give support to entities
10905         available through limited-with clauses.
10906         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
10907         allowed as the last primitive of a tagged type if it has no previous
10908         spec.
10909         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
10910         to give support to abstract interface types
10911
10912         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
10913         in the case where the target type is an anonymous access type of an
10914         object or component (that is, when Is_Local_Anonymous_Access is true).
10915         Prevent the special checks for conversions of access discriminants in
10916         the case where the discriminant belongs to a nonlimited type, since
10917         such discriminants have their accessibility level defined in the same
10918         way as a normal component of an anonymous access type.
10919         (Resolve_Allocator): When an allocator's designated type is a class-wide
10920         type, check that the accessibility level of type given in the
10921         allocator's expression or subtype indication is not statically deeper
10922         than the level of the allocator's access type.
10923         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
10924         name in a discriminant constraint of a record component.
10925         (Resolve_Explicit_Dereference): Do not check whether the type is
10926         incomplete when the dereference is a use of an access discriminant in
10927         an initialization procedure.
10928         (Resolve_Type_Conversion): Handle conversions to abstract interface
10929         types.
10930         (Valid_Tagged_Conversion): The conversion of a tagged type to an
10931         abstract interface type is always valid.
10932         (Valid_Conversion): Modified to give support to abstract interface types
10933         (Resolve_Actuals): Enable full error reporting on view conversions
10934         between unrelated by_reference array types.
10935         The rule for view conversions of arrays with aliased components is
10936         weakened in Ada 2005.
10937         Call to obsolescent subprogram is now considered to be a violation of
10938         pragma Restrictions (No_Obsolescent_Features).
10939         (Check_Direct_Boolean_Operator): If the boolean operation has been
10940         constant-folded, there is nothing to check.
10941         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
10942         check on possible violation of restriction No_Direct_Boolean_Operators
10943         until after expansion of operands, to prevent spurious errors when
10944         operation is constant-folded.
10945
10946         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
10947         Has_Compatible_Type): Modified to give support to abstract interface
10948         types.
10949         (Interface_Present_In_Ancestor): New function to theck if some ancestor
10950         of a given type implements a given interface
10951
10952         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
10953         prefix is a parameterless function that returns an access_to_procedure.
10954         (Transform_Object_Operation): Handle properly function calls of the
10955         form Obj.Op (X), which prior to analysis appear as indexed components.
10956         (Analyze_One_Call): Complete the error notification to help new Ada
10957         2005 users.
10958         (Analyze_Allocator): For an allocator without an initial value, where
10959         the designated type has a constrained partial view, a discriminant
10960         constraint is illegal.
10961
10962 2005-06-14  Robert Dewar  <dewar@adacore.com>
10963
10964         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
10965         do with treatment of Set_Col when positioned at end of line character.
10966
10967 2005-06-14  Robert Dewar  <dewar@adacore.com>
10968
10969         * atree.adb: (Elist*): Protect against uninitialized field
10970
10971 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
10972
10973         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
10974         for an attribute reference that returns an access type.
10975         (Apply_Discriminant_Check): No need for check if (designated) type has
10976         constrained partial view.
10977
10978         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
10979         both bound checks, rather than a conjunction.
10980         (Insert_Valid_Check): If the expression is an actual that is an indexed
10981         component of a bit-packed array, force expansion of the packed element
10982         reference, because it is specifically inhibited elsewhere.
10983
10984 2005-06-14  Vincent Celier  <celier@adacore.com>
10985
10986         * clean.adb (Clean_Project): Correctly delete executable specified as
10987         absolute path names.
10988
10989         * make.adb (Gnatmake): Allow relative executable path names with
10990         directory information even when project files are used.
10991         (Change_To_Object_Directory): Fail gracefully when unable to change
10992         current working directory to object directory of a project.
10993         (Gnatmake): Remove exception handler that could no longer be exercized
10994         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
10995         may be deallocated by Normalize_Arguments.
10996         (Collect_Arguments): Eliminate empty arguments
10997
10998         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
10999         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
11000         (Check_Project): Return False when Project is No_Project. Return True
11001         when All_Projects is True.
11002         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
11003         All_Projects to True.
11004         Minor reformatting
11005
11006 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
11007             Javier Miranda  <miranda@adacore.com>
11008             Thomas Quinot  <quinot@adacore.com>
11009             Robert Dewar  <dewar@adacore.com>
11010             Hristian Kirtchev  <kirtchev@adacore.com>
11011             Gary Dismukes  <dismukes@adacore.com>
11012
11013         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
11014         anonymous access types, to indicate that the accessibility level of
11015         the type is determined by that of the enclosing declaration.
11016         (Has_Persistent_BSS): New flag
11017         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
11018         of this attribute with functions.
11019         (Is_Primitive_Wrapper): Remove the barrier.
11020         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
11021         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
11022         New subprograms.
11023         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
11024         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
11025         New subprograms.
11026         (Is_Pure_Unit_Access_Type): New flag
11027         (Abstract_Interfaces): Complete the assertion to cover all usages.
11028         (Set_Is_Interface): Complete the assertion to cover all usages.
11029         (Is_Primitive_Wrapper): New attribute.
11030         (Is_Obsolescent): Now applies to all entities (though it is only set
11031         for subprograms currently)
11032         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
11033         which solves various problems concerning access subtypes.
11034         (Has_Persistent_BSS): New flag
11035         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
11036         Remove these subprograms because this attribute is currently
11037         not used.
11038         New entity flags:
11039         Has_Specified_Stream_Input (Flag190)
11040         Has_Specified_Stream_Output (Flag191)
11041         Has_Specified_Stream_Read (Flag192)
11042         Has_Specified_Stream_Write (Flag193)
11043         Present in all type and subtype entities. Set for a given view if the
11044         corresponding stream-oriented attribute has been defined by an
11045         attribute definition clause. When such a clause occurs, a TSS is set
11046         on the underlying full view; the flags are used to track visibility of
11047         the attribute definition clause for partial or incomplete views.
11048         (Is_Pure_Unit_Access_Type): New flag
11049         Clarify use of Is_Internal.
11050         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
11051         internally generated to wrap the invocation of tasks and protected
11052         types that implement interfaces.
11053         (Implementation_Base_Type): Documentation correction
11054         (Is_Obsolescent): Now applies to all entities (though it is only set
11055         for subprograms currently)
11056         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
11057         which solves various problems concerning access subtypes.
11058
11059         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
11060         for examined parameters. Identify unequal parameter list lengths as
11061         non-conformant parameters.
11062         (Overriding_Possible): Do not check for "All" qualifier in declaration
11063         of controlling access parameter, following prescription of AI-404.
11064         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
11065         that build the procedure body that wraps an entry invocation
11066         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
11067         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
11068         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
11069         give support to abstract interface types
11070
11071         * freeze.adb (Freeze_Entity): Issue error message if
11072         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
11073         type has no storage pool (Ada 2005) AI-366.
11074         Also modified to give support to abstract interface types
11075         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
11076         Inline_Always pragma.
11077
11078         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
11079         now begin an entry declaration.
11080         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
11081         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
11082         a subprogram declaration preceded by an overriding indicator.
11083         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
11084         declarations or subprogram declarations preceded by reserved words
11085         "not" or "overriding".
11086         (P_Entry_Declaration): Update comment. Parse and check overriding
11087         indicator, set semantic flags of entry declarations.
11088         (P_Task): New error message in case of private applied
11089         to a task type declaration.
11090         (P_Protected): New error message in case of private applied
11091         to a task type declaration.
11092
11093         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
11094         in which the full view of a type implementing an interface is a
11095         concurrent type.
11096         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
11097         Declare_Inherited_Private_Subprograms): If an explicit operation
11098         overrides an operation that is inherited in the private part, mark the
11099         explicit one as overriding, to enable overriding indicator checks.
11100         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
11101         full view to partial view, to simplify handling in back-end.
11102
11103         * sprint.adb: Print interface lists where needed: derived types,
11104         protected types, task types.
11105         output "is null" for null procedures. Part of implementation of
11106
11107         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
11108         relaxation of rules for access types in pure, shared passive partitions.
11109
11110         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
11111         first read discriminants into temporary objects, performing checks on
11112         the read values, then possibly performing discriminant checks on the
11113         actual (if it is constrained), and only finally reading the components
11114         into a constrained temporary object.
11115         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
11116         case of reading discriminants of a mutable record type to recognize
11117         the new form of the code generated by
11118         Build_Mutable_Record_Read_Procedure.
11119
11120         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
11121         of a simple call to Make_TSS_Name.
11122         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
11123         buffer, in order for Is_TSS to work correctly on local TSS names.
11124
11125         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
11126         Is_Local_Anonymous_Access to check legaliy of attributes in the
11127         context of  access components and stand-alone access objects.
11128         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
11129         treated as available for a limited private type if there is an
11130         attribute_definition_clause that applies to its full view, but not in
11131         other cases where the attribute is available for the full view
11132         (specifically, the sole fact that the full view is non-limited does not
11133         make the attribute available for the partial view).
11134         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
11135         non-overloaded intrinsic subprogram.
11136         (Check_Stream_Attribute): Reject an attribute reference for an
11137         unavailable stream attribute even if the prefix is not a limited type
11138         (case of a 'Input attribute reference for an abstract, non-classwide
11139         type)
11140         (Stream_Attribute_Available): New function to determine whether a stream
11141         attribute is available at a place.
11142         (Check_Attribute): Use Stream_Attribute_Available instead of just
11143         testing for TSS presence on the implementation base type.
11144         (Analyze_Attribute): Modified to give support to task interfaces.
11145         (Analyze_Access_Attribute): Add error check for use of an Access (or
11146         Unrestricted_Access) attribute with a subprogram marked as
11147         Inline_Always.
11148         (Analyze_Attribute, case Attribute_Address): Add error check for use of
11149         an Address attribute with a subprogram marked as Inline_Always.
11150         Update Eval_Attribute to handle new value of Width from AI-395
11151
11152         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
11153         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
11154         Factor common code across the stream-oriented attribute circcuits into
11155         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
11156         processing is functionally identical to the previous duplicated one,
11157         except that an expression that denotes an abstract subprogram will now
11158         be rejected, as mandated by AI-195 item 5.
11159
11160         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
11161         Is_Local_Anonymous_Access to apply accessibility checks to access
11162         components and stand-alone access objects.
11163         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
11164         elsewhere.
11165         (Is_Potentially_Persistent_Type): New function
11166         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
11167         a heap-object whose type has a constrained partial view, the object is
11168         unconstrained and the component may depend on a discriminant, making its
11169         renaming illegal.
11170
11171         * sinfo.ads, sinfo.adb
11172         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
11173         (Must_Override): Flag applicable to N_Entry_Declaration.
11174         Indicate that interface_list can appear in single task and single
11175         protected declarations.
11176         Replace Is_Overriding and Not_Overriding with Must_Override and
11177         Must_Not_Override, to better express intent of AI.
11178         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
11179         of an overriding indicator in a subprogram or instance.
11180         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
11181         Add the overriding indicator [[not] overriding] construct to the
11182         following grammar productions:
11183          ENTRY_DECLARATION
11184          GENERIC_INSTANTIATION
11185          SUBPROGRAM_SPECIFICATION
11186
11187         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
11188         can start with an overriding indicator.
11189
11190         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
11191         flags accordingly on subrogram specifications or instances.
11192
11193         * sem_ch8.adb:
11194         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
11195         overriding_indicator, if present, is consistent with status of spec.
11196         Improve error message for null-excluding checks on controlling access
11197         parameters.
11198         (Check_In_Previous_With_Clause): Protect the frontend against
11199         previously reported critical errors in the context clauses.
11200         Save and restore Ada_Version_Explicit, for implementation of AI-362
11201         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
11202         operation verify that controlling formals of the renamed entity that
11203         are access parameters are explicitly non-null.
11204         (Find_Expanded_Name): Improve error message when prefix is an illegal
11205         reference to a private child unit.
11206
11207         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
11208         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
11209         Rewrite to correspond to new wide character names in AI-395
11210
11211         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
11212         default procedures.
11213
11214 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
11215             Robert Dewar  <dewar@adacore.com>
11216
11217         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
11218         code, not on the bodies of predefined operations, to cut down on
11219         spurious noise.
11220
11221 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
11222
11223         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
11224         be expanded in place. The size computation does not require a
11225         subtraction, which would raise an exception on a compiler built with
11226         assertions when the upper bound is Integer'first.
11227         (Flatten): For an array of composite components, take into account the
11228         size of the components to determine whether it is safe to expand the
11229         array into a purely positional representation.
11230
11231 2005-06-14  Thomas Quinot  <quinot@adacore.com>
11232
11233         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
11234         denoting a formal parameter into account.
11235
11236 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
11237
11238         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
11239         the entry_call alternative of a conditional entry call, wrap the
11240         conditional entry call itself.
11241
11242 2005-06-14  Nicolas Setton  <setton@adacore.com>
11243             Ed Schonberg  <schonberg@adacore.com>
11244
11245         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
11246         the "simple_choice" member in a variant record, in accordance with the
11247         description in the package spec: the information output for a constant
11248         should be "S number", not "SS number".
11249         (Get_Encoded_Name): Return at once if not generating code. Avoids name
11250         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
11251
11252 2005-06-14  Thomas Quinot  <quinot@adacore.com>
11253
11254         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
11255         RACW without any primitives, do not generate the if statement for
11256         dispatching by name in the PolyORB/DSA case, as it would be malformed
11257         (it would have an Elsif_Parts list that is not No_List, but with a
11258         length of 0).
11259
11260 2005-06-14  Robert Dewar  <dewar@adacore.com>
11261
11262         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
11263
11264 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
11265
11266         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
11267         can determine whether pragma Suppress_Exception_Locations is in effect.
11268
11269         * utils2.c (build_call_raise): Do not pass the file name to the
11270         exception handler if pragma Suppress_Exception_Locations is in effect.
11271         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
11272
11273 2005-06-14  Emmanuel Briot  <briot@adacore.com>
11274
11275         * g-debpoo.adb (Deallocate, Dereference): Improve output.
11276
11277 2005-06-14  Nicolas Roche  <roche@adacore.com>
11278
11279         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
11280         to ""
11281         (Next_Level): Fix minor bug in handling of ../dir case
11282         (Read): Add dir separator to Directory name so that "" is understood as
11283          "/"
11284
11285 2005-06-14  Pascal Obry  <obry@adacore.com>
11286
11287         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
11288         releasing the items.
11289
11290 2005-06-14  Vincent Celier  <celier@adacore.com>
11291             Cyrille Comar  <comar@adacore.com>
11292
11293         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
11294         with output file descriptor and with output file name.
11295         (Dup, Dup2): Now global procedures as they are used by two subprograms
11296         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
11297
11298 2005-06-14  Thomas Quinot  <quinot@adacore.com>
11299
11300         PR ada/6717
11301         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
11302         broadcast address.
11303         (Create_Selector): Bind listening socket used to create the signalling
11304         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
11305         Set listen backlog to 1 to ensure that we detect socket theft by a
11306         failure of our own connect(2) call.
11307         (Check_Selector): Improve documentation of the selector mechanism.
11308         (Broadcast_Inet_Addr): New constant.
11309
11310 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
11311
11312         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
11313         type which turns out to be an incomplete and incorrect fix.
11314         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
11315         of the type is declared in a record (for determination of insertion
11316         type).
11317         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
11318         a private type and ensure that the primary entity is used for the type
11319         of the newly created function's V formal by taking the Etype of the
11320         view.
11321
11322 2005-06-14  Javier Miranda  <miranda@adacore.com>
11323             Jose Ruiz  <ruiz@adacore.com>
11324             Robert Dewar  <dewar@adacore.com>
11325             Ed Schonberg  <schonberg@adacore.com>
11326
11327         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
11328         that indicates if we are parsing a compilation unit found in a
11329         limited-with clause.
11330         It is use to avoid the circularity check.
11331
11332         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
11333         we are parsing a compilation unit found in a limited-with clause. This
11334         is use to avoid the circularity check.
11335
11336         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
11337         unit as a consequence of parsing a limited-with clause. This is used
11338         to avoid the circularity check.
11339
11340         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
11341         (Analyze_Context): Limited-with clauses are now allowed
11342         in more compilation units.
11343         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
11344         againts previously reported critical errors in context clauses
11345         (Install_Limited_Withed_Unit): Code cleanup plus static detection
11346         of two further errors: renamed subprograms and renamed packages
11347         are not allowed in limited with clauses.
11348         (Install_Siblings): Do not install private_with_clauses on the package
11349         declaration for a non-private child unit.
11350         (Re_Install_Parents): When a parent of the subunit is reinstalled,
11351         reset visibility of child units properly.
11352         (Install_Withed_Unit): When a child unit appears in a with_clause of its
11353         parent, it is immediately visible.
11354
11355 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
11356             Emmanuel Briot  <briot@adacore.com>
11357
11358         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
11359         declared within an inlined body as referenced, to prevent spurious
11360         warnings.
11361         (Output_One_Ref): If an entity renames an array component, indicate in
11362         the ALI file that this aliases (renames) the array. Capture as well
11363         function renamings that rename predefined operations.
11364         Add information about generic parent for package and subprogram
11365         instances.
11366         (Get_Type_Reference): For a subtype that is the renaming of an actual in
11367         an instantiation, use the first_subtype to ensure that we don't generate
11368         cross-reference information for internal types.
11369         For objects and parameters of a generic private type, retain the '*'
11370         indicator to distinguish such an entity from its type.
11371
11372         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
11373         to store information about instantiated entities.
11374
11375         * ali.adb (Scan_ALI): Add support for parsing the reference to the
11376         generic parent
11377
11378         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
11379         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
11380         information.
11381
11382 2005-06-10  Doug Rupp  <rupp@adacore.com>
11383             Arnaud Charlet  <charlet@adacore.com>
11384             Olivier Hainque  <hainque@adacore.com>
11385             Jose Ruiz  <ruiz@adacore.com>
11386
11387         * Make-lang.in: Add initialize.o when needed.
11388         Remove obsolete references to RT_FLAGS.
11389         Add missing dependencies for sdefault.o
11390
11391         * initialize.c: New file.
11392
11393         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
11394         [VMS] cond_signal_table: Fix problem in declaration.
11395         [VMS] __gnat_error_handler: rewrite.
11396         Move all __gnat_initialize() routines to initialize.c
11397         Specialize the former "hpux" section to "hppa hpux", as this is what the
11398         section really is here for and we now have other hpux ports that need
11399         different contents.
11400         (__gnat_adjust_context_for_raise) i386-linux: First version of this
11401         function for this target. Adjust PC by one in the machine context. This
11402         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
11403         it is more reliable to do that in the signal handler itself.
11404         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
11405         flags, so that the handler is passed the context structure to adjust
11406         prior to the raise.
11407         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
11408         SA_SIGINFO sigaction should look like. Call
11409         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
11410         Machine_State_Operations stuff.
11411         Add conditional code so that the x86_64 is also supported.
11412
11413 2005-06-14  Pascal Obry  <obry@adacore.com>
11414
11415         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
11416         the library name.
11417
11418 2005-06-14  Robert Dewar  <dewar@adacore.com>
11419
11420         * opt.ads, opt.adb: New flags for persistent_bss mode
11421         Add Ada_Version_Explicit, for implementation of AI-362
11422         Add Assertions_Enabled_Config and associated handling
11423         Needed since setting can be changed with Assertion_Policy pragma
11424         Add new flag Warn_On_Ada_2005_Compatibility
11425
11426         * switch-c.adb: Recognize -gnatwy/Y
11427         Set Ada_Version_Explicit, for implementation of AI-362
11428         The -gnatg switch now includes -gnatyu
11429
11430         * usage.adb: Add -gnatwy/Y
11431         Remove wrong asterisk on -gnatwX line
11432         Add line for -gnatyu switch
11433
11434 2005-06-14  Vincent Celier  <celier@adacore.com>
11435
11436         * osint.adb (Add_Default_Search_Dirs): Put source and object
11437         directories of project files before directories coming from
11438         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
11439
11440 2005-06-14  Robert Dewar  <dewar@adacore.com>
11441
11442         PR ada/15613
11443         * par-ch2.adb (Scan_Pragma_Argument): New procedure
11444         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
11445
11446 2005-06-14  Vincent Celier  <celier@adacore.com>
11447
11448         * prep.adb (Preprocess): Ignore error when scanning the first token of
11449         a line.
11450
11451 2005-06-14  Vincent Celier  <celier@adacore.com>
11452
11453         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
11454         (Check_Stand_Alone_Library): If the specified reference symbol file does
11455         not exist, only issue a warning when the symbol policy is not
11456         Controlled. And, when symbol policy is Compliant, set the symbol
11457         policy to Autonomous.
11458
11459 2005-06-14  Vincent Celier  <celier@adacore.com>
11460
11461         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
11462         when the project file in a with clause is not the last one, that is the
11463         project file name is followed by a comma.
11464         * prj-pp.adb: (First_With_In_List): New Boolean global variable
11465         (Print): Issue list of project files separated by commas in with clauses
11466         according to the values returned by Is_Not_Last_In_List.
11467         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
11468         (Set_Is_Not_Last_In_List): New procedure
11469
11470 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
11471
11472         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
11473
11474 2005-06-14  Robert Dewar  <dewar@adacore.com>
11475
11476         * scng.adb: Add call to new Check_EOF routine
11477         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
11478         Add some comments regarding wide character handling
11479
11480         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
11481
11482         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
11483
11484         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
11485         characters are now considered graphic characters and hence yield false
11486         in this call.
11487
11488         * nmake.adt: Modify header so that xnmake does not generate output
11489         files with multiple blank lines.
11490
11491         * treeprs.adt: Remove a blank line so that output from xtreeprs does
11492         not have an extra blank line
11493
11494 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
11495
11496         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
11497         expression when the component type is an anonymous access type to
11498         ensure that appropriate accessibility checks are done.
11499
11500         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
11501         expression of an assignment when the target object is of an anonymous
11502         access type. This ensures that required accessibility checks are done.
11503         (One_Bound): Move the check for type Universal_Integer to
11504         Process_Bounds.
11505         (Process_Bounds): Check whether the type of the preanalyzed range is
11506         Universal_Integer, and in that case set Typ to Integer_Type prior
11507         to setting the type of the original range and the calls to One_Bound.
11508
11509 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
11510
11511         * sem_case.adb (Expand_Others_Choice): Improve warning.
11512
11513 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
11514
11515         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
11516         constraint of full view if present, when other type is discriminated.
11517         (Eval_Relational_Op): Recognize tests of pointer values against Null,
11518         when the pointer is known to be non-null, and emit appropriate warning.
11519
11520 2005-06-14  Robert Dewar  <dewar@adacore.com>
11521             Ed Schonberg  <schonberg@adacore.com>
11522
11523         PR ada/10671
11524         * sem_prag.adb: Implement pragma Persistent_BSS
11525         Remove obsolete pragma Persistent_Data, Persistent_Object
11526         Set Ada_Version_Explicit, for implementation of AI-362
11527         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
11528         Add processing for pragma Pure_05 and Preelaborate_05
11529         Add processing for Assertion_Policy pragma
11530         Add pragma identifiers for Assert
11531         (Analyze_Pragma, case Assert): Check number of arguments
11532         (Process_Inline): Additional guard against an illegal program, where the
11533         argument of the pragma is undefined, and warnings on redundant
11534         constructs are enabled.
11535         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
11536         Ada_05 to this pragma, specifying that the pragma is only active in
11537         Ada_05 mode.
11538         (Check_Arg_Order): New procedure
11539         Add appropriate calls to this procedure throughout
11540         Also throughout, check entity name before doing any other checks
11541
11542         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
11543         Remove obsolete pragma Persistent_Data, Persistent_Object
11544         Add entries for pragma Pure_05 and Preelaborate_05
11545         Add entries for Assertion_Policy pragma and associated names
11546         Add some names for pragma argument processing
11547
11548         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
11549
11550 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
11551
11552         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
11553         appears within a negation (either from source or as a rewriting of
11554         inequality) adjust text of warning accordingly.
11555
11556 2005-06-14  Thomas Quinot  <quinot@adacore.com>
11557
11558         * s-strxdr.adb: Follow AI95-00132
11559
11560 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
11561
11562         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
11563
11564 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
11565             Jose Ruiz  <ruiz@adacore.com>
11566
11567         * s-tposen.adb, s-tpobop.adb
11568         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
11569         the exception id.
11570         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
11571         there is no violation of the Max_Entry_Queue_Length restriction (if it
11572         has been set); Program_Error is raised otherwise.
11573         (Requeue_Call): Before requeuing the task on the target entry queue we
11574         check that there is no violation of the Max_Entry_Queue_Length
11575         restriction (if it has been set); Program_Error is raised otherwise.
11576
11577 2005-06-14  Robert Dewar  <dewar@adacore.com>
11578
11579         * styleg.adb: Fix several remaining problems in -gnatyu switch
11580         Blank line count not reset at start
11581         Scanning outside source buffer in some cases
11582         Confusing message for blanks at end of file
11583         Non-empty blank lines not recognized
11584
11585         * nmake.adt: Modify header so that xnmake does not generate output
11586         files with multiple blank lines.
11587
11588         * treeprs.adt: Remove a blank line so that output from xtreeprs does
11589         not have an extra blank line
11590
11591 2005-06-14  Sergey Rybin  <rybin@adacore.com>
11592
11593         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
11594
11595 2005-06-14  Doug Rupp  <rupp@adacore.com>
11596             Vincent Celier  <celier@adacore.com>
11597
11598         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
11599         Update copyright.
11600
11601         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
11602         Remove "Library" command.
11603         Change keyword for style check -gnatyd from NOCRLF to
11604         DOS_LINE_ENDINGS.
11605         Remove useless second style check keyword NONE
11606         Remove help documentation for inexistent style check keyword
11607         RM_COLUMN_LAYOUT.
11608         Add help documentation for style check keywords DOS_LINE_ENDINGS,
11609         UNNECESSARY_BLANK_LINES and XTRA_PARENS
11610         Add UNNECESSARY_BLANK_LINES for -gnatyu
11611         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
11612
11613         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
11614
11615 2005-06-14  Vincent Celier  <celier@adacore.com>
11616
11617         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
11618         gprmake was invoked with -d.
11619         (Compile_Sources): If -d was used, output the "completed ..." message
11620         for each compilation.
11621         (Scan_Arg): Recognize new switch -d
11622         When -c and at least one main is specified, set
11623         Unique_Compile to True to guarantee that no other sources will be
11624         compiled.
11625
11626 2005-06-14  Matthew Heaney  <heaney@adacore.com>
11627
11628         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
11629         * a-swuwha.ads, a-swuwha.adb: New files
11630
11631         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
11632         * a-szuzha.ads, a-szuzha.adb: New files.
11633
11634         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
11635         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
11636         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
11637         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
11638         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
11639         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
11640         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
11641         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
11642         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
11643         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
11644         Ada 2005 RM.
11645
11646 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
11647             Olivier Hainque  <hainque@adacore.com>
11648             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11649             Pascal Obry  <obry@adacore.com>
11650
11651         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
11652
11653         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
11654         making a temporary around a procedure call because of non-addressable
11655         actual parameter.
11656         (process_freeze_entity): If entity is a private type, capture size
11657         information that may have been computed for the full view.
11658         (tree_transform, case N_Allocator): If have initializing expression,
11659         check type for Has_Constrained_Partial_View and pass that to
11660         build_allocator.
11661         (tree_transform, case N_Return_Statement): Pass extra arg to
11662         build_allocator.
11663
11664         * decl.c (annotate_value): Remove early return if -gnatR is not
11665         specified.
11666         (gnat_to_gnu_field): Don't make a packable type for a component clause
11667         if the position is byte aligned, the field is aliased, and the clause
11668         size isn't a multiple of the packable alignment. It serves no useful
11669         purpose packing-wise and would be rejected later on.
11670         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
11671
11672         PR ada/20515
11673         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
11674         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
11675         instead.
11676         (create_concat_name): Idem.
11677
11678 2005-06-10  Robert Dewar  <dewar@adacore.com>
11679             Eric Botcazou  <ebotcazou@adacore.com>
11680             Ben Brosgol  <brosgol@adacore.com>
11681             Cyrille Comar  <comar@adacore.com>
11682             Sergey Rybin  <rybin@adacore.com>
11683             Pascal Obry  <obry@adacore.com>
11684
11685         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
11686         Document second argument (Ada_05) of pragma Obsolescent
11687         Add note that call to subprogram marked with pragma Obsolescent
11688         is now considered to be a violation of program Restrictions
11689         (No_Obsolescent_Features).
11690         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
11691         that only machine-dependent attributes are supported.
11692
11693         * gnat_ugn.texi:
11694         Commented out menu lines and empty section for gnatclean examples
11695         Document -gnatwy/Y
11696         Fix some over long lines
11697         Clarify and enhance documentation of ADA_PROJECT_PATH.
11698         Rework section 2.11.2(3) about linking with a non-GNU compiler.
11699         Mention new switch -fcallgraph-info.
11700         Mention new switch -fstack-usage.
11701         For gnatpp, replace '-notab' with '-N' and add this option to Index
11702         Corrected VMS example.
11703         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
11704         Minor reformatting
11705         Add documentation for -gnatyu switch (unnecessary blank lines)
11706         Document new switch -U for GNAT PRETTY and GNAT METRIC
11707         Add note about Stdcall being handled as C convention on non Windows OS.
11708         Remove some junk typo in description of gnatbind -S switch
11709         Remove reference to Extensions_Allowed pragma
11710         Document the new order of the directories to be searched (source and
11711         object directories of project files before directories in ADA_*_PATH
11712         environment variables.
11713
11714         * g-trasym.ads: Document that IRIX is supported
11715
11716 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
11717
11718         * Makefile.in: Add initialize.o when needed.
11719         Adapt to new VMS package body Symbols and subunits
11720         No specialized version of a-sytaco is needed for VxWorks.
11721
11722         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
11723         * a-zchara.ads, a-widcha.ads: New files.
11724
11725         * system-hpux-ia64.ads: New file.
11726
11727         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
11728         is imported from the VxWorks kernel.
11729
11730 2005-06-14  Robert Dewar  <dewar@adacore.com>
11731
11732         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
11733         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
11734         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
11735         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
11736         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
11737         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
11738         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
11739         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
11740         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
11741         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
11742         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
11743         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
11744
11745 2005-06-14  Thomas Quinot  <quinot@adacore.com>
11746
11747         * xeinfo.adb: Fix typo in comment
11748
11749 2005-06-14  Javier Miranda  <miranda@adacore.com>
11750
11751         * repinfo.ads: Fix typo in comment
11752
11753 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
11754
11755         * s-finimp.adb (Parent_Tag): Delete this imported function (function
11756         Parent_Tag is now in the visible part of Ada.Tags).
11757         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
11758         using imported function.
11759
11760 2005-06-14  Bernard Banner  <banner@adacore.com>
11761
11762         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
11763         also apply for handling support for VxSim 653.
11764
11765 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
11766
11767         * xsnames.adb: Add automatic generation of snames.h.
11768
11769 2005-06-14  Thomas Quinot  <quinot@adacore.com>
11770
11771         * gen-soccon.c: Add IP_MULTICAST_IF constant
11772         Minor reformatting and adjustments to prevent warnings.
11773
11774 2005-06-14  Pascal Obry  <obry@adacore.com>
11775
11776         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
11777
11778 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
11779
11780         * trans.c (gnat_gimplify_expr): Call
11781         recompute_tree_invarant_for_addr_expr when we change
11782         the operand of the ADDR_EXPR.
11783
11784 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11785
11786         * misc.c: Don't include errors.h.
11787
11788 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11789
11790         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
11791
11792 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
11793
11794         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
11795         comment typos.
11796         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
11797
11798 2005-05-16  Nathanael Nerode <neroden@gcc.gnu.org>
11799
11800         PR ada/20270
11801         * Makefile.in: Make TGT_LIB behave correctly.
11802
11803 2005-04-23  DJ Delorie  <dj@redhat.com>
11804
11805         * misc.c: Adjust warning() callers.
11806
11807 2005-04-16  Laurent GUERBY  <laurent@guerby.net>
11808
11809         PR ada/18847
11810         * a-nudira.adb (Value): Check for valid string.
11811         * a-nuflra.adb (Value): Likewise.
11812
11813 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
11814
11815         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
11816
11817 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
11818
11819         * adaint.c, init.c, tracebak.c: Fix comment typos.
11820         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
11821
11822 2005-04-07  Laurent GUERBY  <laurent@guerby.net>
11823             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11824
11825         * Makefile.in: Add make ifeq define for hppa linux tasking support.
11826         * system-hpux.ads: Define Signed_Zeros to be True.
11827         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
11828
11829 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
11830
11831         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
11832         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
11833         typos.
11834
11835 2005-03-30  Tom Tromey  <tromey@redhat.com>
11836
11837         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
11838
11839 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
11840
11841         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
11842
11843 2005-03-29  Robert Dewar  <dewar@adacore.com>
11844
11845         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
11846         fixed-point expression has value that is not a multiple of the Small
11847         value.
11848
11849         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
11850
11851         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
11852         nanoseconds.
11853
11854         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
11855
11856 2005-03-29  Vincent Celier  <celier@adacore.com>
11857
11858         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
11859         (Build_Dynamic_Library.Version_String): Return the empty string when
11860         Lib_Version is empty or when the symbol policy is not Autonomous.
11861
11862         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
11863         a symbol is not in the reference symbol file, increase the Major ID
11864         and set the Minor ID to 0.
11865         Use gsmatch=lequal instead of gsmatch=equal
11866
11867 2005-03-29  Doug Rupp  <rupp@adacore.com>
11868
11869         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
11870         name and translate.
11871
11872 2005-03-29  Javier Miranda  <miranda@adacore.com>
11873
11874         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
11875         (Inherit_DT): The first formal has been redefined as a Tag.
11876         This allows us the removal of the subprogram Get_TSD.
11877         (TSD): Replace the call to Get_TSD by the actual code.
11878
11879         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
11880         (Make_DT): Upgrade the call to Inherit_TSD according to the
11881         new interface: the first formal is now a Tag.
11882
11883         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
11884         redefined as a Tag.
11885         This change allows us to remove the subprogram Get_TSD.
11886         (CPP_Get_TSD): Subprogram removed.
11887         (TSD): Replace the call to CPP_Get_TSD by the actual code.
11888
11889         * rtsfind.ads: Remove support to call the run-time
11890         subprogram Get_TSD
11891
11892 2005-03-29  Robert Dewar  <dewar@adacore.com>
11893
11894         * errutil.adb, errout.adb:
11895         Minor comment updates on Line_Terminator references
11896
11897         * par-ch10.adb: Add ??? comment about line terminator
11898
11899         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
11900         (check dos line terminator).
11901         (Check_Line_Max_Length): New procedure, split off from the existing
11902         Check_Line_Terminator routine. Separating this out allows -gnatyf to
11903         be properly recognized.
11904
11905         * styleg.adb: Add ??? comment for line terminator reference
11906
11907         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
11908         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
11909
11910         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
11911         (check dos line terminator).
11912         (Check_Line_Max_Length): New procedure, split off from the existing
11913         Check_Line_Terminator routine. Separating this out allows -gnatyf to
11914         be properly recognized.
11915
11916         * stylesw.ads, stylesw.adb:
11917         Add handling for new -gnatyd switch (check dos line terminator)
11918
11919         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
11920         Recognize -gnatwb/-gnatwB switches
11921         Include Warn_On_Bad_Fixed_Value for -gnatg
11922
11923         * usage.adb:
11924         Add line for new -gnatyd switch (check dos line terminator)
11925
11926         * usage.adb: Add lines for -gnatwb/-gnatwB
11927
11928         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
11929
11930         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
11931
11932         * gnat_ugn.texi: Fix overlong lines
11933         Document new -gnatyd switch
11934         Document new -gnatwb/-gnatwB switches
11935
11936 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
11937
11938         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
11939         order to retrieve the component list of the type, before examining
11940         individual components.
11941
11942         * sem_type.adb (Covers): Types are compatible if one is the base type
11943         of the other, even though their base types might differ when private
11944         views are involved.
11945
11946 2005-03-29  Thomas Quinot  <quinot@adacore.com>
11947
11948         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
11949         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
11950         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
11951         analyzed if expansion is disabled (which could otherwise cause spurious
11952         error messages if expansion has been disabled due to previous
11953         (unrelated) errors).
11954
11955         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
11956         is disabled, the entity denoted by the argument is the access type
11957         itself, not an underlying record type, so there is no need to go back
11958         to the Corresponding_Remote_Type.
11959
11960 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
11961             Robert Dewar  <dewar@adacore.com>
11962
11963         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
11964         expand a call to an instance of
11965         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
11966         Constructor actual of the instance. A class-wide membership
11967         check is also generated, to ensure that the tag passed to the instance
11968         denotes a type in the class.
11969         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
11970         of Name_Generic_Dispatching_Constructor.
11971
11972         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
11973         05 unit for AI-260-02).
11974
11975         * a-tgdico.ads: New file.
11976
11977         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
11978         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
11979
11980         * snames.ads, snames.adb (Preset_Names): Add entry for
11981         Generic_Dispatching_Constructor.
11982
11983         PR ada/20300
11984         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
11985         character type cases.
11986         (Analyze_Subprogram_Renaming): Add special handling for
11987         the case of renaming of stream attributes when the renaming denotes a
11988         generic formal subprogram association for an abstract formal subprogram.
11989         Check that the attribute is a primitive stream attribute (and not
11990         a class-wide stream attribute) and then rewrite the attribute name
11991         as the name of the appropriate compiler-generated stream primitive.
11992
11993 2005-03-29  Robert Dewar  <dewar@adacore.com>
11994
11995         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
11996         recursive calls.
11997         (Is_Possibly_Unaligned_Object): Correct typo that
11998         resulted in inaccurate result for unaligned scalars within records.
11999
12000 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
12001
12002         * freeze.adb (Freeze_Record_Type): If the type of the component is an
12003         itype whose parent is controlled and not yet frozen, do not create a
12004         freeze node for the itype if expansion is disabled.
12005
12006 2005-03-29  Vincent Celier  <celier@adacore.com>
12007
12008         * make.adb (Gnatmake): Don't fail if the main project file is declared
12009         as having no Ada sources. Do not display message "no sources to
12010         compile" in quiet output.
12011
12012 2005-03-29  Doug Rupp  <rupp@adacore.com>
12013
12014         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
12015         extra tools.
12016
12017 2005-03-29  Robert Dewar  <dewar@adacore.com>
12018
12019         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
12020         child.
12021
12022 2005-03-29  Robert Dewar  <dewar@adacore.com>
12023
12024         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
12025         missing TYPE Improve the error message generated when compiling a
12026         limited interface in Ada83 or Ada95 mode.
12027
12028 2005-03-29  Robert Dewar  <dewar@adacore.com>
12029
12030         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
12031         rather than proceed ahead using a junk attribute name.
12032
12033 2005-03-29  Vincent Celier  <celier@adacore.com>
12034
12035         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
12036
12037         * prj-part.adb (Parse_Single_Project): Set the location of a project
12038         on its defining identifier, rather than on the reserved word "project".
12039
12040         * prj-proc.adb (Expression): Adapt to the fact that default of external
12041         references may be string expressions, not always literal strings.
12042         (Recursive_Process): Set Display_Name equal to Name
12043         when Location is No_Location, that is when there is no actual file.
12044         Get the Display_Name of the project from the source, when it is not a
12045         virtual project.
12046         (Process): Use the Display_Name in error messages
12047
12048         * prj-strt.adb (External_Reference): Allow default to be string
12049         expressions, not only literal strings.
12050
12051 2005-03-29  Vincent Celier  <celier@adacore.com>
12052
12053         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
12054         file and the reference symbol file to be the same file.
12055
12056 2005-03-29  Thomas Quinot  <quinot@adacore.com>
12057
12058         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
12059         forbid conversion of a local access-to-subprogram type to a remote one.
12060
12061         * sem_util.adb (Wrong_Type): For a record type that is the expanded
12062         equivalent type for a remote access-to-subprogram type, go back to the
12063         original RAS entity when displaying an error message, so the casing is
12064         the original source casing.
12065
12066 2005-03-29  Robert Dewar  <dewar@adacore.com>
12067
12068         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
12069         on param update.
12070
12071 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
12072
12073         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
12074         subtype if code is being pre-analyzed, to prevent un-expanded
12075         references to protected formals, among others.
12076         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
12077         interpretation that can be a call, include the result of the call as a
12078         possible interpretation of the dereference.
12079
12080         * sem_ch5.adb (Process_Bounds): Determine type of range by
12081         pre-analyzing a copy of the original range, and then analyze the range
12082         with the expected type.
12083
12084         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
12085         with an overloaded prefix where not all interpretations yield an
12086         access to subprogram, do not rewrite node as a call.
12087         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
12088         the node as a call once the context identifies the interpretation of
12089         the prefix whose call yields the context type.
12090         (Valid_Conversion): For the case of a conversion between
12091         local access-to-subprogram types, check subtype conformance using
12092         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
12093         detailed error message.
12094
12095 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
12096
12097         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
12098         indicator, indicate that the formal can never be null.
12099         (Process_Formals): If a formal has a non_null indicator, insert the
12100         resulting subtype immediately before the enclosing subprogram decl,
12101         and not at the beginning of the corresponding declarative part, to
12102         prevent access before elaboration (Ada2005).
12103
12104 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12105
12106         PR ada/19956
12107         * utils.c (finish_record_type): Use variable_size when setting sizes.
12108
12109 2005-03-29  Robert Dewar  <dewar@adacore.com>
12110
12111         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
12112         guarantee Unix style line terminators for the output files, even when
12113         running on windows.
12114
12115 2005-03-29  Robert Dewar  <dewar@adacore.com>
12116
12117         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
12118         buffer if an exception is raised.
12119
12120 2005-03-29  Ed Falis  <falis@adacore.com>
12121
12122         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
12123         VxWorks 653 1.4
12124
12125 2005-03-29  Robert Dewar  <dewar@adacore.com>
12126
12127         * sem_util.ads: Minor reformatting
12128         * gnat_rm.texi: Minor editing.
12129
12130 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
12131
12132         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
12133         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
12134
12135 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
12136
12137         * adaint.c (__gnat_portable_spawn): Adjust cast.
12138
12139 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
12140
12141         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
12142
12143 2005-03-17  Pascal Obry  <obry@adacore.com>
12144
12145         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
12146         used.
12147
12148         * expect.c (__gnat_waitpid): Moved here from adaint.c.
12149         Reimplement under Win32 using Win32 API.
12150
12151         (__gnat_kill) [Win32]: Properly close the process handle before leaving
12152         this routine.
12153
12154 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
12155
12156         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
12157         (DECL_RENAMED_OBJECT): New accessor macro.
12158         (SET_DECL_RENAMED_OBJECT): New setter macro.
12159
12160         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
12161         object in all cases.  Attach the renamed object to the VAR_DECL.
12162         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
12163         field is not prescribed.
12164
12165         * misc.c (gnat_handle_option): Handle -gnatO separately.
12166         (gnat_print_decl) <VAR_DECL>: New case.
12167         Print the DECL_RENAMED_OBJECT node.
12168
12169         * lang.opt:  Declare separate -gnatO option.
12170
12171         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
12172         pointer, replace it with the renamed object.
12173         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
12174         pointer type if the source is not a fat pointer type whose underlying
12175         array has the same non-zero alias set as that of the destination array.
12176
12177 2005-03-17  Javier Miranda  <miranda@adacore.com>
12178
12179         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
12180         (Get_Inheritance_Depth): Removed.
12181         (Set_Inheritance_Depth): Removed.
12182
12183         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
12184         subprogram Get_Expanded_Name because it is not referenced by the
12185         frontend.
12186
12187         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
12188         (CPP_Get_Inheritance_Depth): Removed.
12189         (CPP_Set_Inheritance_Depth): Removed.
12190
12191         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
12192
12193 2005-03-17  Robert Dewar  <dewar@adacore.com>
12194
12195         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
12196         3, since we now expect GCC 3 to do all the work.
12197
12198 2005-03-17  Javier Miranda  <miranda@adacore.com>
12199
12200         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
12201         of one barrier to avoid wrong usage of this attribute.
12202
12203         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
12204         First_Private_Entity.
12205
12206         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
12207         the subprogram against wrong usage.
12208         Adapt the code to traverse the entities in the
12209         scope of a record_type because in addition to its usage regarding
12210         packages, this subprogram is also called by Expand_N_Freeze_Entity
12211         to install the visible declarations of the enclosing scope of a
12212         record_type_with_private to establish the proper visibility before
12213         freezing the entity and related subprograms.
12214
12215 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
12216
12217         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
12218         entry formals.
12219
12220 2005-03-17  Thomas Quinot  <quinot@adacore.com>
12221
12222         * exp_ch3.adb (Check_Attr): New subprogram.
12223         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
12224         into a new Check_Attr subprogram, in order to provide a more
12225         explanatory error message (including the name of the missing attribute).
12226         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
12227         subprogram determines whether a default implementation exists for a
12228         given stream attribute.
12229         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
12230         Determine whether to generate a default implementation for each stream
12231         attribute separately, as this depends on the specific attribute.
12232
12233         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
12234         limited extension where a stream attribute is missing for a limited
12235         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
12236         generate a bogus reference to the missing attribute to prevent
12237         cascaded errors. Instead, generate a null statement.
12238
12239         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
12240         available for a limited type if it has been specified for an ancestor
12241         of the type.
12242
12243 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
12244
12245         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
12246         entity is an operator.
12247
12248 2005-03-17  Thomas Quinot  <quinot@adacore.com>
12249
12250         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
12251         spec, to make this predicate available to other units.
12252
12253         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
12254         reimplementing it.
12255
12256         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
12257         when no distribution runtime library is available.
12258
12259         * sem_res.adb, sem_dist.adb: Disable expansion of remote
12260         access-to-subprogram types when no distribution runtime library is
12261         available.
12262         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
12263         predicate available to other units.
12264
12265         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
12266         spec, to make this predicate available to other units.
12267
12268 2005-03-17  Vincent Celier  <celier@adacore.com>
12269
12270         * make.adb (Insert_Project_Sources): Make sure the Q is always
12271         initialized.
12272
12273         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
12274         the default for the tree, not the global default naming.
12275
12276         * prj-proc.adb (Recursive_Process): No need to put the default naming
12277         in the project data, it's already there.
12278
12279 2005-03-17  Doug Rupp  <rupp@adacore.com>
12280
12281         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
12282
12283         * 5xcrtl.ads: Renamed to...
12284         * s-crtl-vms64.ads: ...this new file
12285
12286 2005-03-17  Robert Dewar  <dewar@adacore.com>
12287
12288         PR ada/19519
12289         * namet.adb (Copy_One_Character): Set proper wide character encoding
12290         for upper half character if we have upper half encoding.
12291
12292 2005-03-17  Robert Dewar  <dewar@adacore.com>
12293
12294         * par.adb (Par): Improved msg for attempt to recompile predefined unit
12295
12296 2005-03-17  Thomas Quinot  <quinot@adacore.com>
12297
12298         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
12299         tagged limited type, the TSS is a newly built renaming declaration:
12300         insert it using Set_TSS, not Copy_TSS.
12301
12302 2005-03-17  Javier Miranda  <miranda@adacore.com>
12303
12304         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
12305         Try_Object_Operation): Analyze the object that is accessible
12306         through the prefix of the subprogram call before we apply
12307         the transformation of the object-operation notation.
12308
12309 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
12310
12311         * s-taprob.adb (Initialize_Protection): Initialize the protected
12312         object's owner to Null_Task.
12313         (Lock): If pragma Detect_Blocking is in effect and the caller of this
12314         procedure is already the protected object's owner then Program_Error
12315         is raised. In addition the protected object's owner is updated.
12316         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
12317         of this procedure is already the protected object's owner then
12318         Program_Error is raised.
12319         In addition the protected object's owner is updated.
12320         (Unlock): Remove the ownership of the protected object.
12321
12322         * s-taprob.ads (Protection): Add the field Owner, used to store the
12323         protected object's owner.
12324         This component is needed for detecting one type of potentially blocking
12325         operations (external calls on a protected subprogram with the same
12326         target object as that of the protected action). Document the rest of
12327         the components.
12328
12329         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
12330         Initialize the protected object's owner to Null_Task.
12331         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
12332         caller of this procedure is already the protected object's owner then
12333         Program_Error is raised.
12334         Do not raise Program_Error when this procedure is called from a
12335         protected action.
12336         (Unlock_Entries): Remove the ownership of the protected object.
12337         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
12338         of this procedure is already the protected object's owner then
12339         Program_Error is raised.
12340         Do not raise Program_Error when this procedure is called from
12341         a protected action.
12342
12343         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
12344         used to store the protected object's owner.
12345
12346         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
12347         effect and this procedure (a potentially blocking operation) is called
12348         from whithin a protected action, Program_Error is raised.
12349         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
12350         and this procedure (a potentially blocking operation) is called from
12351         whithin a protected action, Program_Error is raised.
12352
12353 2005-03-17  Vincent Celier  <celier@adacore.com>
12354             Nicolas Setton  <setton@adacore.com>
12355
12356         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
12357         switch, not supported by the linker on Darwin. Add '_' before
12358         <library>init, as this character is added unconditionally by the
12359         compiler.
12360         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
12361         correct one ".dylib". This fixes detection of the archive files when
12362         building library projects.
12363
12364 2005-03-17  Vincent Celier  <celier@adacore.com>
12365
12366         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
12367         -gnat83, -gnat95 and -gnat05.
12368
12369 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
12370
12371         * gnat_ugn.texi: Document gnatmem restriction
12372
12373 2005-03-17  Thomas Quinot  <quinot@adacore.com>
12374
12375         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
12376         cleanup
12377
12378 2005-03-17  Robert Dewar  <dewar@adacore.com>
12379
12380         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
12381         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
12382         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
12383
12384         * casing.adb: Comment improvements
12385
12386 2005-03-17  Pascal Obry  <obry@adacore.com>
12387
12388         * g-expect.adb: Minor reformatting.
12389
12390 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
12391
12392         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
12393         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
12394         to dependencies.
12395
12396 2005-03-15  Vincent Celier  <celier@adacore.com>
12397
12398         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
12399         Add new parameter In_Tree to specify the project tree: needed
12400         by the project manager. Adapt to changes in project manager
12401         using new parameter In_Tree.
12402
12403 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
12404
12405         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
12406         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
12407         ada/bldtools to avoid make -jN failures.
12408
12409 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
12410
12411         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
12412         to NULL_TREE on entry.
12413
12414 2005-03-15  Robert Dewar  <dewar@adacore.com>
12415
12416         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
12417         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
12418         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
12419         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
12420         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
12421         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
12422         system-interix.ads, system-solaris-sparc.ads,
12423         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
12424         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
12425         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
12426         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
12427         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
12428         Compiler_System_Version to be False.
12429
12430         * opt.ads: Add new flag Opt.Address_Is_Private
12431
12432         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
12433         Add new parameter Compiler_System_Version to avoid checking for
12434         completeness of parameters when compiler is compiling itself.
12435         Allows old versions of GNAT to be compiled with new compiler.
12436
12437 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
12438
12439         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
12440         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
12441         calling thread.
12442         (Stack_Base_Available): New flag.
12443         (Get_Page_Size): New overloaded functions imported from C.
12444         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
12445         PROT_ON, PROT_OFF): New constants.
12446         (mprotect): New function imported from C.
12447         (pthread_teb_t): New record type.
12448
12449         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
12450         (Create_Task): Account for the Yellow Zone and the guard page.
12451
12452 2005-03-15  Vincent Celier  <celier@adacore.com>
12453
12454         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
12455         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
12456         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
12457         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
12458         Library_File_Name_For): Add new parameter In_Tree
12459         to specify the project tree: needed by the project manager.
12460         Adapt to changes in project manager using new parameter In_Tree.
12461         Remove local imports, use functions in System.CRTL.
12462
12463         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
12464         to use the project manager.
12465
12466         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
12467         In_Tree to designate the project tree. Adapt to changes in the project
12468         manager, using In_Tree.
12469
12470         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
12471         Copy_Interface_Sources): Add new parameter In_Tree to specify the
12472         project tree: needed by the project manager.
12473         (Build_Library): Check that Arg'Length >= 6 before checking if it
12474         contains "--RTS=...".
12475
12476         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
12477         Library_File_Name_For): Add new parameter In_Tree to specify the
12478         project tree: needed by the project manager.
12479
12480         * prj.ads, prj.adb: Major modifications to allow several project trees
12481         in memory at the same time.
12482         Change tables to dynamic tables and hash tables to dynamic hash
12483         tables. Move tables and hash tables from Prj.Com (in the visible part)
12484         and Prj.Env (in the private part). Move some constants from the visible
12485         part to the private part. Make other constants deferred.
12486         (Project_Empty): Make it a variable, not a function
12487         (Empty_Project): Add parameter Tree. Returns the data with the default
12488         naming data of the project tree Tree.
12489         (Initialize): After updating Std_Naming_Data, copy its value to the
12490         component Naming of Project Empty.
12491         (Register_Default_Naming_Scheme): Use and update the default naming
12492         component of the project tree, instead of the global variable
12493         Std_Naming_Data.
12494         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
12495         Tree is not defaulted, return the default naming data of the Tree.
12496         (Initial_Buffer_Size): Constant moved from private part
12497         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
12498         variables initialized in procedure Initialize.
12499         (Add_To_Buffer): Add two in out parameters to replace global variables
12500         Buffer and Buffer_Last.
12501         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
12502         functions.
12503         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
12504         hash tables.
12505         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
12506         for the project tree.
12507         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
12508         constant at the beginning of the package spec, so that they cane be used
12509         in subprograms before their full declarations.
12510         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
12511         (Empty_Project): Add parameter of type Project_Node_Ref
12512         (Private_Project_Tree_Data): Add component Default_Naming of type
12513         Naming_Data.
12514         (Buffer, Buffer_Last): remove global variables
12515         (Add_To_Buffer): Add two in out parameters to replace global variables
12516         Buffer and Buffer_Last.
12517         (Current_Packages_To_Check): Remove global variable
12518         (Empty_Name): Move to private part
12519         (No-Symbols): Make it a constant
12520         (Private_Project_Tree_Data): New type for the private part of the
12521         project tree data.
12522         (Project_Tree_Data): New type for the data of a project tree
12523         (Project_Tree_Ref): New type to designate a project tree
12524         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
12525         for the project tree.
12526
12527         * prj-attr.ads: Add with Table; needed, as package Prj no longer
12528         imports package Table.
12529
12530         * prj-com.adb: Remove empty, no longer needed body
12531
12532         * prj-com.ads: Move most of the content of this package to package Prj.
12533
12534         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
12535         designate the project node tree and Packages_To_Check to replace
12536         global variable Current_Packages_To_Check.
12537         Add new parameters In_Tree and Packages_To_Check to local subprograms,
12538         when needed. Adapt to changes in project manager with project node tree
12539         In_Tree.
12540
12541         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
12542         project tree to most subprograms. Move tables and hash tables to
12543         private part of package Prj.
12544         Adapt to changes in project manager using project tree In_Tree.
12545
12546         * prj-makr.adb (Tree): New constant to designate the project node tree
12547         Adapt to change in project manager using project node tree Tree
12548
12549         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
12550         display the Library_Src_Dir and the Library_Dir.
12551         Add new parameter In_Tree to designate the project node tree to most
12552         subprograms. Adapt to changes in the project manager, using project tree
12553         In_Tree.
12554         (Check_Naming_Scheme): Do not alter the casing on platforms where
12555         the casing of file names is not significant.
12556         (Check): Add new parameter In_Tree to designate the
12557
12558         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
12559         designate the project tree.
12560         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
12561
12562         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
12563         to replace those that were in the private part of package Prj.
12564         Add new parameter In__Tree to designate the project node tree to most
12565         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
12566         (Post_Parse_Context_Clause): When specifying the project node of a with
12567         clause, indicate that it is a limited with only if there is "limited"
12568         in the with clause, not necessarily when In_Limited is True.
12569         (Parse): Add new parameter In_Tree to designate the project node tree
12570
12571         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
12572         designate the project node tree. Adapt to change in Prj.Tree with
12573         project node tree In_Tree.
12574
12575         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
12576         tree In_Tree in the call to function Empty_Process to give its initial
12577         value to the project data Processed_Data.
12578         Add new parameters In_Tree to designate the project tree and
12579         From_Project_Node_Tree to designate the project node tree to several
12580         subprograms. Adapt to change in project manager with project tree
12581         In_Tree and project node tree From_Project_Node_Tree.
12582
12583         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
12584         to replace those that were in the private part of package Prj.
12585         Add new parameter In_Tree to designate the project node tree to most
12586         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
12587
12588         * prj-tree.ads, prj-tree.adb: Add new parameter of type
12589         Project_Node_Tree_Ref to most subprograms.
12590         Use this new parameter to store project nodes in the designated project
12591         node tree.
12592         (Project_Node_Tree_Ref): New type to designate a project node tree
12593         (Tree_Private_Part): Change table to dynamic table and hash tables to
12594         dynamic hash tables.
12595
12596         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
12597         the project tree to most subprograms. Adapt to changes in project
12598         manager using project tree In_Tree.
12599
12600         * makegpr.adb (Project_Tree): New constant needed to use project
12601         manager.
12602
12603 2005-03-15  Olivier Hainque  <hainque@adacore.com>
12604
12605         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
12606         for sigactions with SA_SIGINFO set. Call
12607         __gnat_adjust_context_for_raise before raising, to perform the
12608         potentially required adjustments to the machine context for the GCC
12609         unwinder.
12610
12611         * raise.h (__gnat_adjust_context_for_raise): New prototype.
12612
12613         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
12614         Adjust PC by one in the provided machine context.
12615         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
12616         so that the handler is passed the context structure to adjust prior to
12617         the raise.
12618         (__gnat_error_handler) HPUX: Adjust the signature to match what an
12619         SA_SIGINFO sigaction should look like. Call
12620         __gnat_adjust_context_for_raise before actually raising.
12621         (__gnat_adjust_context_for_raise): Default noop to help PC
12622         adjustments before raise from signal handlers.
12623         (__gnat_error_handler): Indirectly call a predicate function to
12624         determine if a condition should be resignaled or not.
12625         (__gnat_set_resignal_predicate): User interface to modify the predicate.
12626         (__gnat_default_resignal_p): Default GNAT predicate.
12627
12628 2005-03-15  Doug Rupp  <rupp@adacore.com>
12629
12630         * adaint.c: Prefix #include of VMS system header files with vms/
12631         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
12632         Do not define a dummy function "convert_addresses" under Darwin,
12633         not needed.
12634
12635         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
12636         with vms/
12637
12638 2005-03-15  Nicolas Setton  <setton@adacore.com>
12639
12640         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
12641         PPC/AIX.
12642
12643 2005-03-15  Robert Dewar  <dewar@adacore.com>
12644
12645         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
12646         AI-386.
12647
12648         * a-retide.ads: Minor comment changes
12649
12650 2005-03-15  Robert Dewar  <dewar@adacore.com>
12651
12652         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
12653         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
12654         Realloc_For_Chunk to private part of package.
12655         New subprograms for AI-301
12656
12657         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
12658         Get_Line procedure.
12659         Avoid unnecessary use of Get/Set_Wide_String
12660
12661 2005-03-15  Robert Dewar  <dewar@adacore.com>
12662
12663         PR ada/13470
12664         * a-stunau.ads, a-stunau.adb:
12665         Change interface to allow efficient (and correct) implementation
12666         The previous changes to allow extra space in unbounded strings had
12667         left this interface a bit broken.
12668
12669         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
12670
12671         * g-spipat.ads, g-spipat.adb: New interface for Get_String
12672         Minor reformatting (function specs)
12673
12674         * g-spitbo.adb: New interface for Get_String
12675
12676         * g-spitbo.ads: Minor reformatting
12677
12678         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
12679
12680         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
12681
12682 2005-03-15  Javier Miranda  <miranda@adacore.com>
12683             Robert Dewar  <dewar@adacore.com>
12684             Thomas Quinot  <quinot@adacore.com>
12685             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12686
12687         * atree.ads, atree.adb: Add support for Elist24 field
12688
12689         * atree.h: Fix wrong definition of Field27
12690         Add support for Elist16 field
12691         Add support for Elist24 field
12692
12693         * einfo.ads, einfo.adb (Abstract_Interfaces,
12694         Set_Abstract_Interfaces): New subprograms.
12695         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
12696         subprograms.
12697         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
12698         entities rather than a single node.
12699         (Is_Interface, Set_Is_Interface): New subprogram
12700         (First_Tag_Component): New syntesized attribute
12701         (Next_Tag_Component): New synthesized attribute
12702         (Write_Entity_Flags): Upgraded to write Is_Interface
12703         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
12704         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
12705         (Task_Body_Procedure): New subprogram to read this attribute.
12706         (Set_Task_Body_Procedure): New subprogram to set this attribute.
12707         (Has_Controlled_Component): Now applies to all entities.
12708         This is only a documentation change, since it always worked to apply
12709         this to other than composite types (yielding false), but now this is
12710         official.
12711         Update documentation on Must_Be_Byte_Aligned for new spec
12712
12713         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
12714         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
12715         uses of the Access_Disp_Table attribute to reference the first dispatch
12716         table associated with a tagged type. As
12717         part of the implementation of abstract interface types,
12718         Access_Disp_Table has been redefined to contain a list of dispatch
12719         tables (rather than a single dispatch table).
12720         Similarly, upgrade all the references to Tag_Component by the
12721         new attribute First_Tag_Component.
12722         (Find_Inherited_TSS): Moved to exp_tss.
12723         Clean up test in Expand_N_Object_Declaration for cases
12724         where we need to do a separate assignment of the initial value.
12725         (Expand_N_Object_Declaration): If the expression in the
12726         declaration of a tagged type is an aggregate, no need to generate an
12727         additional tag assignment.
12728         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
12729         is to be deleted.
12730         Bit packed array ops are only called if operands are known to be
12731         aligned.
12732         (Component_Equality): When returning an N_Raise_Program_Error statement,
12733         ensure that its Etype is set to Empty to avoid confusing GIGI (which
12734         expects that only expressions have a bona fide type).
12735         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
12736         determine the amount of data to be copied.
12737
12738         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
12739         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
12740             INTERFACE_TYPE_DEFINITION ::=
12741               [limited | task | protected | synchronized] interface
12742                 [AND interface_list]
12743
12744         * par-ch3.adb (P_Type_Declaration): Modified to give support to
12745         interfaces.
12746         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
12747         interfaces.
12748         (P_Interface_Type_Definition): New subprogram that parses the new
12749         syntax rule of Ada 2005 interfaces
12750         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
12751         messages by the correct RENAMES (quotes removed).
12752
12753         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
12754         attribute First_Tag_Component.
12755
12756         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
12757         (Interface_List, Set_Interface_List): New subprograms.
12758         (Interface_Present, Set_Interface_Present): New subprograms.
12759         (Limited_Present, Set_Limited_Present): Available also in derived
12760         type definition nodes.
12761         (Protected_Present, Set_Protected_Present): Available also in
12762         record type definition and
12763         derived type definition nodes.
12764         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
12765         (Task_Present, Set_Task_Present): New subprogram.
12766         (Task_Body_Procedure): Removed.
12767         (Set_Task_Body_Procedure): Removed.
12768         These subprogram have been removed because the attribute
12769         Task_Body_Procedure has been moved to the corresponding task type
12770         or task subtype entity to leave a field free to store the list
12771         of interfaces implemented by a task (for AI-345)
12772         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
12773         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
12774         expression flag Do_Range_Check
12775         (Exception_Junk): Change to Flag7 to accomodate above change
12776         (Box_Present, Default_Name, Specification, Set_Box_Present,
12777         Set_Default_Name, Set_Specification): Expand the expression
12778         "X in N_Formal_Subprogram_Declaration" into the corresponding
12779         two comparisons. Required to use the csinfo tool.
12780
12781         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
12782         "with string" given.
12783
12784         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
12785         expression given.
12786
12787         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
12788         in 2005 mode
12789
12790         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
12791         attribute Task_Body_Procedure rather than the old semantic field that
12792         was available in the task_type_declaration node.
12793
12794         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
12795         interface type definitions.
12796         (P_Formal_Derived_Type_Definition): Modified to handle the list of
12797         interfaces.
12798
12799         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
12800         task type declaration.
12801         (P_Protected): Modified to handle the list of interfaces in a
12802         protected type declaration.
12803
12804 2005-03-15  Doug Rupp  <rupp@adacore.com>
12805             Vincent Celier  <celier@adacore.com>
12806
12807         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
12808         (Gen_Output_File_C): Likewise.
12809         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
12810
12811 2005-03-15  Thomas Quinot  <quinot@adacore.com>
12812
12813         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
12814         is an N_Raise_Constraint_Error node, create a new copy of it without
12815         going through a call to Duplicate_Subexpr.
12816
12817 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
12818             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12819             Nicolas Setton  <setton@adacore.com>
12820             Ed Schonberg  <schonberg@adacore.com>
12821
12822         PR ada/19900
12823         PR ada/19408
12824         PR ada/19140
12825         PR ada/20255
12826         * decl.c (gnat_to_gnu_field): Reject aliased components with a
12827         representation clause that prescribes a size not equal to the rounded
12828         size of their types.
12829         (gnat_to_gnu_entity, case E_Component): Always look at
12830         Original_Record_Component if Present and not the entity.
12831         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
12832         of tagged extension types by not making field for components that are
12833         inside the parent.
12834         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
12835         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
12836         expression to the type of the object when the object is constant.
12837         Reverse defer_debug_incomplete_list before traversing it, so that trees
12838         are processed in the order at which they were added to the list. This
12839         order is important when using the stabs debug format.
12840         If we are deferring the output of debug information, also defer this
12841         output for a function return type.
12842         When adding fields to a record, prevent emitting debug information
12843         for incomplete records, emit the information only when the record is
12844         complete.
12845         (components_to_record): New parameter defer_debug.
12846         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
12847         (gnat_to_gnu_field_decl): New function.
12848         (substitution_list, annotate_rep): Call it.
12849         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
12850         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
12851         No longer update discriminants to not be a COMPONENT_REF.
12852         (copy_alias_set): Strip padding from input type; also handle
12853         unconstrained arrays properly.
12854
12855         * gigi.h (write_record_type_debug_info): New function.
12856         Convert to use ANSI-style prototypes. Remove unused
12857         declarations for emit_stack_check, elab_all_gnat and
12858         set_second_error_entity.
12859         (gnat_to_gnu_field_decl): New decl.
12860
12861         * utils.c (write_record_type_debug_info): New function.
12862         (finish_record_type): Delegate generation of debug information to
12863         write_record_type_debug_info.
12864         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
12865         (update_pointer_to): Fix pasto.
12866         (convert) <UNION_TYPE>: Accept slight type variations when
12867         converting to an unchecked union type.
12868
12869         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
12870         replace the N_Freeze_Entity with a null statement.
12871
12872         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
12873         within a constrained subcomponent of an enclosing record, place the
12874         freeze nodes in the scope stack entry for the enclosing record.
12875         (Undelay_Type): New Subprogram.
12876         (Set_Small_Size): Pass T, the type to modify; all callers changed.
12877         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
12878         within records; allow them to have freeze nodes if their base types
12879         aren't frozen yet.
12880
12881         * exp_util.adb (Remove_Side_Effects): Properly test for
12882         Expansion_Delayed and handle case when it's inside an
12883         N_Qualified_Expression.
12884
12885         * sem_ch3.adb (Derived_Type_Declaration): New predicate
12886         Comes_From_Generic, to recognize accurately that the parent type in a
12887         derived type declaration can be traced back to a formal type, because
12888         it is one or is derived from one, or because its completion is derived
12889         from one.
12890         (Constrain_Component_Type): If component comes from source and has no
12891         explicit constraint, no need to constrain in in a subtype of the
12892         enclosing record.
12893         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
12894         Minor change to propagate Is_Ada_2005 flag
12895
12896         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
12897         Expansion_Delayed is False.
12898         (assoc_to_constructor): Ignore fields that have a
12899         Corresponding_Discriminant.
12900         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
12901         function returns "by target", dereference the target pointer using the
12902         type of the actual return value.
12903         <all>: Be prepared for a null gnu_result.
12904         (processed_inline_subprograms): Check flag_really_no_inline
12905         instead of flag_no_inline.
12906         (set_second_error_entity): Remove unused function.
12907         (gnat_to_gnu, case N_Selected_Component): Call
12908         gnat_to_gnu_field_decl.
12909         (assoc_to_constructor): Likewise.
12910
12911 2005-03-15  Robert Dewar  <dewar@adacore.com>
12912             Ed Schonberg  <schonberg@adacore.com>
12913             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12914
12915         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
12916         Must_Be_Byte_Aligned for cases where we do not need to use a
12917         System.Pack_nn unit.
12918
12919         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
12920         as procedures.
12921         Needed now that we do some processing for IN parameters as well. This
12922         may well fix some unrelated errors.
12923         (Expand_Call): Handle case of unaligned objects (in particular those
12924         that come from packed arrays).
12925         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
12926         renamed entity is an inherited operation, re-expand the call using the
12927         original operation, which is the one to call.
12928         Detect attempt to inline parameterless recursive subprogram.
12929         (Represented_As_Scalar): Fix to work properly with private types
12930         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
12931         accurate estimate. Yields True in far fewer cases than before,
12932         improving the quality of code that depends on this test.
12933
12934         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
12935         over both visible and private declarations to remove them from tree,
12936         and mark subprograms declared in package as eliminated, to prevent
12937         spurious use in subsequent compilation of generic units in the context.
12938
12939         * exp_util.ads: Minor cleanup in variable names
12940
12941         * sem_eval.ads, sem_eval.adb: Minor reformatting
12942         (Compile_Time_Known_Bounds): New function
12943
12944 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
12945
12946         * exp_ch7.adb (Convert_View): Use base types of underlying types when
12947         determining whether an unchecked conversion is needed for the argument
12948         of an initialization call.
12949
12950 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
12951
12952         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
12953         that appears in the instantiation rather than the internal subtype
12954         generated in the wrapper package, to avoid anomalies in gigi when the
12955         target is derived from a private type whose full view is an access type.
12956
12957 2005-03-15  Robert Dewar  <dewar@adacore.com>
12958
12959         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
12960         not needed.
12961         Add documentation to replace the use of this flag
12962         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
12963         the x86_64.
12964
12965 2005-03-15  Thomas Quinot  <quinot@adacore.com>
12966
12967         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
12968         here from exp_attr so it can be shared between exp_attr and exp_dist.
12969         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
12970         all TSS names, not a subset thereof, and the previous name introduced
12971         an unnecessarily confusion that a distinction might exist between
12972         "OK" TSS names and some "not OK" TSS names.
12973
12974 2005-03-15  Doug Rupp  <rupp@adacore.com>
12975
12976         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
12977         Command_Name.
12978
12979 2005-03-15  Pascal Obry  <obry@adacore.com>
12980             Eric Botcazou  <ebotcazou@adacore.com>
12981
12982         PR ada/20226
12983         PR ada/20344
12984         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
12985         when IN_RTS. This is to work around a bootstrap path problem.
12986
12987         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
12988         table and pass it to __gnat_install_SEH_handler().
12989         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
12990
12991         * lang.opt: Fix specification of -fRTS=.
12992
12993 2005-03-15  Doug Rupp  <rupp@adacore.com>
12994             Bernard Banner  <banner@adacore.com>
12995             Vincent Celier  <celier@adacore.com>
12996             Arnaud Charlet  <charlet@adacore.com>
12997
12998         PR ada/6852
12999         This change works fine when gnatlib is built from the gcc directory,
13000         but does not work when using the libada Makefile, since GCC_FOR_TARGET
13001         is not passed to ada/Makefile.in, so more work is needed by a
13002         Makefile/configure expert.
13003
13004         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
13005         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
13006         Setup gnatlink switch -M for x86_64 linux, as it is already setup
13007         for Linux x86.
13008         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
13009         Run ranlib on libgccprefix.a
13010         Define PREFIX_OBJS for Darwin, to build libgccprefix.
13011         (ADA_INCLUDE_SRCS): Split Ada packages.
13012
13013 2005-03-15  Robert Dewar  <dewar@adacore.com>
13014
13015         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
13016
13017         * impunit.adb: Add GNAT.UTF_32
13018
13019         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
13020
13021         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
13022         now uses GNAT.UTF_32).
13023
13024         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
13025         capabilities for categorizing characters using Unicode categories
13026
13027 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
13028
13029         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
13030         instantiation that has been rewritten as a package body, retrieve spec
13031         to generate proper name for implicit_with_clause.
13032         (Install_Parents): Recognize a parent that is an instantiation but has
13033         been rewritten as a package declaration during analysis.
13034
13035 2005-03-15  Javier Miranda  <miranda@adacore.com>
13036             Ed Schonberg  <schonberg@adacore.com>
13037
13038         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
13039         parameter reported some error we immediately return. This improves the
13040         behaviour of the frontend in case of errors.
13041         (Install_Parent, Remove_Parent): Introduce new flag
13042         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
13043         ancestor of a generic child unit, when the child is being instantiated.
13044         (Inline_Instance_Body): If we are compiling the private
13045         part or the body of a child unit, restore the proper visibility of the
13046         parents after compiling the instance body.
13047
13048 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
13049             Javier Miranda  <miranda@adacore.com>
13050
13051         PR ada/15608
13052         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
13053         of a private type, in which case it is underlying_type that denotes
13054         the proper task. Also modified to use the new entity attribute
13055         that is directly available in the task type and task subtype entities
13056         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
13057         arrays when other dimensions than the first are constrained by
13058         discriminants of an enclosing record.
13059         (Insert_Explicit_Dereference): If the prefix is an indexed component or
13060         a combination of indexed and selected components, find ultimate entity
13061         and generate the appropriate reference for it, to suppress spurious
13062         warnings.
13063         (Note_Possible_Modification): If an entity name has no entity, return.
13064         (Is_Variable): A function call never denotes a variable.
13065         (Requires_Transient_Scope): For record types, recurse only on
13066         components, not on internal subtypes that may have been generated for
13067         constrained components.
13068
13069 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
13070
13071         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
13072         Eliminated as candidates for resolution. Both efficient, and avoids
13073         anomalies with operators declared in deleted code.
13074         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
13075         expansion is disabled (as when compiling a generic) to prevent spurious
13076         warnings on prefixes of selected components.
13077
13078 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
13079
13080         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
13081         attached to a list before checking whether it appears in the private
13082         declarations of the current package.
13083         (Make_Inequality_Operator): Insert declaration in proper declarative
13084         list rather than just setting the Parent field, so that
13085         Is_Private_Declaration can handle it properly.
13086
13087 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
13088
13089         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
13090         a renaming a body, check that the renamed subprogram in not intrinsic.
13091         (Find_Direct_Name): If several use_visible entities hide
13092         each other, and the context is a predefined file compiled through
13093         rtsfind, keep only the entity that comes from a predefined file.
13094
13095 2005-03-15  Geert Bosch  <bosch@adacore.com>
13096
13097         * s-fatgen.adb (Valid): Extend special exceptions to account for long
13098         long float padding to also cover AMD64 and IA64.
13099
13100 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
13101
13102         * s-imgwch.adb: Add with and use of Interfaces.
13103         (Img_Wide_Character): Change type of Val to Unsigned_16.
13104         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
13105
13106 2005-03-15  Matthew Gingell  <gingell@adacore.com>
13107
13108         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
13109
13110 2005-03-15  Robert Dewar  <dewar@adacore.com>
13111
13112         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
13113
13114         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
13115
13116         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
13117
13118 2005-03-15  Robert Dewar  <dewar@adacore.com>
13119
13120         * s-bitops.adb, s-bitops.ads,
13121         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
13122         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
13123         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
13124         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
13125         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
13126         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
13127         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
13128         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
13129         reformatting.
13130
13131 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
13132
13133         * utils2.c (build_binary_op): Fix typo.
13134
13135 2005-03-15  Doug Rupp  <rupp@adacore.com>
13136
13137         * s-crtl.ads (popen,pclose): New imports.
13138
13139 2005-03-15  Cyrille Comar  <comar@adacore.com>
13140
13141         * comperr.adb (Compiler_Abort): remove references to obsolete
13142         procedures in the bug boxes for various GNAT builds.
13143
13144 2005-03-15  Vincent Celier  <celier@adacore.com>
13145
13146         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
13147
13148 2005-03-15  Geert Bosch  <bosch@adacore.com>
13149             Arnaud Charlet  <charlet@adacore.com>
13150             Robert Dewar  <dewar@adacore.com>
13151             Cyrille Comar  <comar@adacore.com>
13152             Sergey Rybin  <rybin@adacore.com>
13153
13154         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
13155         too specific and long-winded to be appropriate for the GNAT User's
13156         Guide.
13157         Warn about use of GCC switches not documented in the GNAT User's Guide,
13158         as these may cause generated code to not conform to Ada semantics.
13159         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
13160         Add documentation for -gnat95 and -gnat05 switches
13161         Remove paragraph documenting obsolete way to refer to third party
13162         libraries.
13163         Add a few references to Ada_05 that were missing.
13164         Update documentation on -gnatZ/-gnatL.
13165         Document limitation when using -m64 under Solaris.
13166         Change the "Name Casing" subsection of the pretty-printer section
13167         according to the changes in the dictionary processing.
13168
13169         * gnat_rm.texi: Document the Ada_05 pragma.
13170         Section on record representation clauses describes the new more
13171         relaxed rules about placement of large packed bit array components.
13172         Add documentation of GNAT.UTF_32
13173
13174 2005-03-12  Daniel Berlin <dberlin@dberlin.org>
13175
13176         * misc.c (gnat_post_options): Turn off structural
13177         aliasing for now.
13178
13179 2005-03-08  Laurent Guerby <laurent@guerby.net>
13180
13181         * system-linux-sparc.ads: Fix typo in previous commit.
13182
13183 2005-03-07  James A. Morrison <phython@gcc.gnu.org>
13184             Laurent Guerby <laurent@guerby.net>
13185
13186         PR ada/20035
13187         * system-linux-sparc.ads: New.
13188         * Makefile.in: Add sparc linux entry.
13189
13190 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
13191
13192         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
13193         parameters as unused.
13194
13195 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
13196         Partial merge from libada-gnattools-branch:
13197
13198         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
13199         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
13200         into code in gnattools/Makefile.in.  Remove direct dependencies on
13201         stamp-tools by tools clauses.
13202         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
13203         * config-lang.in: Add gnattools to $lang_dirs.
13204
13205 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
13206
13207         PR ada/19942
13208         * utils.c (gnat_type_for_mode): Return null instead of ICE because
13209         we asked for an unknown mode.
13210
13211 2005-02-12  Richard Henderson  <rth@redhat.com>
13212
13213         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
13214         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
13215
13216 2005-02-10  Andreas Jaeger  <aj@suse.de>
13217
13218         * init.c (__gnat_initialize): Mark parameter as unused.
13219
13220 2005-02-09  Doug Rupp  <rupp@adacore.com>
13221
13222         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
13223         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
13224
13225 2005-02-09  Doug Rupp  <rupp@adacore.com>
13226
13227         * gnatchop.adb (dup, dup2),
13228         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
13229
13230         * gnatlbr.adb (mkdir),
13231         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
13232
13233         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
13234
13235 2005-02-09  Doug Rupp  <rupp@adacore.com>
13236
13237         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
13238
13239 2005-02-09  Robert Dewar  <dewar@adacore.com>
13240             Thomas Quinot  <quinot@adacore.com>
13241             Javier Miranda  <miranda@adacore.com>
13242             Pascal Obry  <obry@adacore.com>
13243             Ed Schonberg  <schonberg@adacore.com>
13244             Doug Rupp  <rupp@adacore.com>
13245             Gary Dismukes  <dismukes@adacore.com>
13246             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13247
13248         * g-zstspl.ads: New file.
13249
13250         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
13251
13252         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
13253         Ada 95 mode
13254         Add definition of Wide_Wide_Space for AI-285
13255
13256         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
13257         interface (to support Ada 95 and Ada 2005 units).
13258         Add Unbounded_IO files
13259         Add entries for Wide_Wide packages for AI-285
13260         Add list of containers packages to Ada 2005 unit list
13261
13262         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
13263         support new Unbounded_IO package cleanly.
13264
13265         * g-utf_32.ads, g-utf_32.adb: New files.
13266
13267         * Makefile.rtl: Add entry for g-utf_32
13268         Add new files for Unbounded_IO
13269         Adjust make file for new AI-285 wide wide packages
13270         Add AI-302 containers to the run time.
13271
13272         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
13273         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
13274         subprograms for AI-301.
13275
13276         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
13277
13278         * a-stunau.ads: Minor comment correction
13279
13280         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
13281         etc.
13282         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
13283         (Check_RPC): Update to match changes in expanded code.
13284         Clean up unused entity.
13285
13286         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
13287         was not taken into account.
13288         This includes proper initialization with Normalize_Scalars.
13289         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
13290         normalize scalars cases (particularly the latter) to do a better job
13291         of finding invalid representations.
13292
13293         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
13294
13295         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
13296         used
13297
13298         * exp_dist.adb: Add support for wide wide character type
13299         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
13300         private part, generate stub bodies at the end of the private part,
13301         not the visible part.
13302         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
13303         PolyORB support.
13304         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
13305         generic wrapper to execute final processing after completing the
13306         expansion of the RPC receiver for an RACW.
13307
13308         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
13309         packages and attributes.
13310         (Preset_Names): Addition of the new reserved words of Ada 2005,
13311         that is interface, overriding and synchronized.
13312         (Get_Pragma_Id): Give support to the use of the new reserved word
13313         "interface" as a pragma name.
13314         (Is_Pragma_Name): Give support to the use of the new reserved word
13315         "interface" as a pragma name.
13316         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
13317         attribute implementation.
13318
13319         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
13320         checks to entities that are output parameters of Asm operations.
13321         Handle the Stream_Size attribute.
13322         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
13323
13324         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
13325
13326         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
13327         for second parameter being 0.0.
13328         Add support for wide wide character type.
13329         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
13330
13331         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
13332         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
13333         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
13334         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
13335         for wide wide character cases.
13336
13337         * cstand.adb: Create entities for Wide_Wide_Character and
13338         Wide_Wide_String.
13339
13340         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
13341         accordance with AI-258.
13342         Add new declarations for 16/32 bit C character types (Part of AI285)
13343
13344         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
13345         (Obsolescent_Warning): New field
13346         (Rep_Clause): New local subprogram used to share code. Returns the rep
13347         clause for which the name is given in parameter.
13348         (Has_Stream_Size_Clause): New routine.
13349         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
13350         (Address_Clause): Implementation is now using Rep_Clause.
13351         (Alignment_Clause): Idem.
13352         (Size_Clause): Idem.
13353
13354         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
13355         entity in non-Ada 2005 mode and generate warning.
13356
13357         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
13358         (Prag): Code cleanup. Remove old gnat pragma "overriding"
13359
13360         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
13361         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
13362         on the named unit if the pragma is not in the current compilation unit,
13363         so that elaboration calls in the current unit can set up an elaboration
13364         dependency on the named unit, as needed.
13365         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
13366         subprogram as well as for subprograms declared within a package.
13367         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
13368         pragma overriding.
13369
13370         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
13371         to z) to avoid some instances of duplication for Wide_Wide packages.
13372
13373         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
13374         characters.
13375
13376         * scn.adb: Char_Literal_Value field is now a Uint
13377
13378         * scng.adb: Significant rewrite to handle new Ada 2005 features
13379         allowing wide and wide wide characters in program text, e.g. for
13380         identifiers, as described in AI-285.
13381         (Set_Reserved): New procedure, makes setting up keywords cleaner.
13382         (Initialize_Scanner): Register the new reserved words of Ada 2005.
13383         (Scan): Give support to the new reserved words.
13384
13385         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
13386         warning notifying that interface, overriding, and synchronized are
13387         new reserved words.
13388         (P_Pragma): Allow the use of the new reserved word "interface" as
13389         a pragma name.
13390
13391         * gnatls.adb, gnatbind.adb,
13392         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
13393         identifiers named "interface" to "SAL_Interface".
13394
13395         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
13396         (Structured Exception handling).
13397         (Gen_Main_C): Idem.
13398
13399         * bindgen.adb:
13400         (Gen_Main_Ada): Set the default exit code if specified.
13401         (Gen_Main_C): Likewise.
13402         Part of *DC20-006.
13403         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
13404         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
13405
13406         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
13407         new -Xnnn switch.
13408
13409         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
13410         has a collision with the new Ada 2005 "interface" reserved word.
13411
13412         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
13413         generate a warning notifying that interface, overriding, and
13414         synchronized are new reserved words.
13415
13416         * scans.ads (Token_Type): Addition of the tokens corresponding to the
13417         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
13418         and Tok_Synchronized.
13419
13420         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
13421         "dispatching" rather than "primitive" operations, since dispatching
13422         calls are now allowed to abstract formal subprograms (which are not
13423         primitive).
13424         Char_Literal_Value field is now a Uint
13425         (Resolve_Slice): If the prefix is an access to an unconstrained array,
13426         compute the actual subtype of the designated object to impose the proper
13427         index constraints.
13428         (Resolve_Selected_Component): Do not insert an access check if the
13429         prefix is an access type: such a node is expanded into an explicit
13430         dereference, on which the access check is performed anyway. Removes
13431         expensive duplicate checks.
13432         (Resolve_Call): Use new flag Is_Obsolescent and field
13433         Obsolescent_Warning so that pragma Obsolescent works on library
13434         subprograms.
13435         Add support for wide wide character type
13436         (Resolve_Allocator): Replace the error message on wrong null-exclusion
13437         value by a warning message.
13438         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
13439         as fixed-point, and one of the operands is non-static and universal, it
13440         can only be an illegal exponentiation operation, in which case there is
13441         no real value to retrieve.
13442
13443         * exp_strm.adb: Add support for wide wide character type
13444         (Build_Elementary_Input_Call): Compute the size of the stream element by
13445         querying the rep chain to find the Stream_Attribute attribute value.
13446         (Build_Elementary_Write_Call): Ditto.
13447
13448         * sem_aggr.adb: Char_Literal_Value field is now a Uint
13449         Add support for wide wide character type
13450         Replace the error messages on wrong null-exclusion value by warnings
13451         as described in Ada 2005.
13452         (Resolve_Extension_Aggregate): Document the fact that the error
13453         message on class-wide expressions in extensions aggregates.
13454
13455         * sem_case.adb: Add support for wide wide character type
13456
13457         * sem_ch13.adb: Add support for wide wide character type
13458         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
13459
13460         * sem_ch3.adb: Add support for wide wide character type
13461         (Process_Subtype): If constraint is illegal for the type, set Ekind of
13462         now-useless Itype, to prevent cascaded errors on a compiler built
13463         without -gnatp.
13464
13465         * sem_ch8.adb: Add with and use of Sem_Disp.
13466         (Analyze_Subprogram_Renaming): Replace unclean uses of
13467         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
13468         of Corresponding_Spec to Empty).
13469         (Attribute_Renaming): Replace use of Corresponding_Spec with
13470         Corresponding_ Formal_Spec and simplify condition.
13471         (Use_One_Package): Check that scope of homonym of identifier is defined,
13472         before checking whether it is a wrapper package.
13473         Add support for wide wide character type
13474
13475         * sem_eval.adb: Add support for wide wide character type.
13476         (Eval_Arithmetic_Op): Check for compile time known signed integer
13477         overflow in the non-static case.
13478         (Subtypes_Statically_Match): A formal scalar type and its base type do
13479         not statically match.
13480
13481         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
13482         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
13483         subtype).
13484         (Unit_Declaration_Node): Ditto.
13485         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
13486         has a packed array type, the prefix has been rewritten into a type
13487         conversion. Determine variable-ness from the converted expression.
13488         Handle wide wide character cases.
13489
13490         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
13491
13492         * stringt.ads, stringt.adb: Handle full UTF-32 range.
13493         Remove ["0A"] from comment, since it can look like a line terminator.
13494         Currently we don't permit this, but this is under discussion by the
13495         ARG, and it is easy enough to use a different example.
13496
13497         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
13498         handling UTF-32 encoding for wide wide character.
13499         Implement new brackets coding ["hhhhhhhh"]
13500         Add UTF-8 encodings for full UTF-32 range
13501
13502         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
13503
13504         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
13505         bit range Add full UTF-32 support.
13506         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
13507         notify that constraint error will be raised at run-time
13508         because a null value is assigned to a null-excluding object.
13509         Remove some obsolete declarations and make Char_Code
13510         unsigned.
13511
13512         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
13513         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
13514         Rcheck subprograms.
13515
13516         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
13517         wrong null-exclusion value by a warning message.
13518         (Enable_Range_Check): Do range check if the prefix is an
13519         explicit dereference whose designated object is an unconstrained array.
13520         Current algorithm for removing duplicate checks is over-eager in this
13521         case.
13522
13523         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
13524         null-exclusion value by a warning message
13525
13526         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
13527         completely. Add support for Uint2 field
13528
13529         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
13530         exp_prag.adb: Char_Literal_Value field is now a Uint.
13531
13532         * exp_util.adb (Insert_Actions): Replace
13533         N_Formal_Subprogram_Declaration by
13534         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
13535         Char_Literal_Value field is now a Uint.
13536
13537         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
13538         defined for subprogram renaming declarations. When set, the field
13539         indicates the defining entity of a corresponding formal subprogram
13540         when the renaming corresponds to a formal subprogram association in an
13541         instantiation.
13542         (Set_Corresponding_Formal_Spec): New procedure to return
13543         Corresponding_Formal_Spec field.
13544         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
13545         (which is now a subtype).
13546         Char_Literal_Value field is now a Uint
13547
13548         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
13549         pointer to the base of the dispatch table.
13550         Minor changes to comments.
13551         (Controlling_Type): New function for determining the tagged type
13552         associated with a tagged primitive subprogram.
13553         (Expand_Dispatching_Call): Add support for a controlling actual that is
13554         directly a value of type Ada.Tag rather than a tagged object.
13555
13556         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
13557         describing the new layout.
13558         (Dispatch_Table): The expander computes the actual array size, allocates
13559         the Dispatch_Table record accordingly, and generates code that displaces
13560         the base of the record after the Typeinfo_Ptr component. The access to
13561         these components is done by means of local functions.
13562         (Offset_To_Top): New function.
13563         (Typeinfo_Ptr): New function.
13564         (Get_TSD): Modified to access the new position of the TSD.
13565         (Set_TSD): Modified to save the TSD in its new position.
13566
13567         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
13568         case of formal abstract subprograms. Add check and message for -gnat05.
13569         Update comments.
13570
13571         * sem_ch12.adb: Add with and use for Sem_Disp.
13572         (Analyze_Associations): Minor change from "=" to "in" for use of
13573         N_Formal_Subtype_Declaration (which is now a subtype).
13574         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
13575         N_Formal_Subtype_Declaration (which is now a subtype).
13576         (Analyze_Formal_Subprogram): Add handling for
13577         N_Formal_Abstract_Subprogram, marking the formal as abstract and
13578         dispatching, setting the controlling status of the formal parameters
13579         and result, and issuing an error if there is no controlling type for
13580         the formal subprogram.
13581         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
13582         which is an unclean use of that field, we set the new field
13583         Corresponding_Formal_Spec to make the formal subprogram available to
13584         processing in Analyze_Subprogram_Declaration.
13585         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
13586         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
13587         Constrained, so that it is is does not statically match its anonymous
13588         base type.
13589
13590         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
13591         abstract formal subprograms in error check for functions returning
13592         abstract types. Set scope of new designator for
13593         a parameterless subprogram, so that it is available when checking the
13594         body for nested subprograms, before full analysis of said body.
13595         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
13596         subprogram only if inner one comes from source.
13597         (Analyze_Function_Call): If the call is given in object notation, the
13598         analysis of the name rewrites the node and analyzes it with the proper
13599         argument list. After analyzing the name, if the call has been rewritten
13600         and the result type is set, no further analysis is needed.
13601         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
13602         mark in function specification, in a context where the formals are
13603         visible and hide outer homographs.
13604
13605         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
13606         as the tagged type for the cases of abstract formal subprograms and
13607         renamings of those.  Clean up spec comments.
13608         (Check_Dispatching_Context): Add error message to indicate "abstract
13609         procedure", covering the case of a call to a formal abstract procedure
13610         that has statically tagged operands.
13611         (Check_Dispatching_Call): Check for the case of an actual given by
13612         a tag-indeterminate function call whose type is an ancestor of the
13613         containing call's associated tagged type. This situation can occur
13614         for inherited primitives with function defaults. In this case we
13615         use the tagged type's tag directly as the controlling argument for
13616         the calls.
13617         (Expand_Call): Name change on call to Expand_Dispatch_Call.
13618
13619         * sprint.adb (Sprint_Node_Actual): Split
13620         N_Formal_Subprogram_Declaration into two alternatives for the new
13621         cases N_Formal_Abstract_Subprogram_Declaration and
13622         N_Formal_Concrete_Subprogram_Declaration.
13623         Char_Literal_Value field is now a Uint.
13624
13625         * trans.c: Get rid of junk Uint2 reference.
13626         Char_Literal_Value field is now a Uint.
13627         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
13628         (gigi): Correct third arg to gimplify_body.
13629
13630         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
13631         (TYPE_LANG_FLAG_0): Check for record or union.
13632
13633         * treepr.adb: Char_Literal_Value field is now a Uint
13634
13635         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
13636         UI_From_CC.
13637
13638         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
13639         Add full UTF-32 support
13640         Char_Code is now 32 bits
13641
13642         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
13643         wide character UTF_32 line terminators.
13644         Initialize Main_Source_File to avoid error when no main
13645         source is loaded.
13646
13647         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
13648         (Main_Source_File) when no main source has been loaded, to avoid
13649         potential crash.
13650
13651 2005-02-09  Robert Dewar  <dewar@adacore.com>
13652
13653         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
13654         Fix name of Set routine
13655
13656         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
13657         fixed packages.
13658
13659         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
13660         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
13661         fixed packages
13662
13663         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
13664         forms of Get_Line subprograms for AI-301.
13665
13666         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
13667         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
13668         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
13669         a-stwima.ads: Minor reformatting.
13670
13671 2005-02-09  Doug Rupp  <rupp@adacore.com>
13672             Thomas Quinot  <quinot@adacore.com>
13673
13674         * adaint.c, adaint.h
13675         [VMS] (to_ptr32): New function.
13676         (MAYBE_TO_PTR32): New macro.
13677         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
13678         for pointer size.
13679         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
13680         [VMS] (#define fork()): Remove since unneccessary.
13681         (__gnat_set_close_on_exec): New routine to support
13682         GNAT.OS_Lib.Set_Close_On_Exec.
13683
13684         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
13685         the parent side as close-on-exec so that they are not inherited by the
13686         child.
13687
13688         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
13689         set or clear the FD_CLOEXEC flag on a file descriptor.
13690
13691 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
13692             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13693
13694         PR ada/19386
13695         * decl.c:
13696         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
13697         on the field if Pragma Component_Alignment (Storage_Unit).
13698         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
13699         side-effects as if it were a constant; also make SAVE_EXPR to protect
13700         side-effects.
13701         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
13702         UNION_TYPE.
13703         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
13704         (components_to_record): Test it.
13705         Fix improper usage of REFERENCE_CLASS_P.
13706
13707         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
13708         RECORD_TYPE.
13709
13710         * utils2.c: Minor reformatting.
13711
13712         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
13713         handle other cases like RECORD_TYPE.
13714
13715         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
13716
13717 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
13718
13719         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
13720         component of an array of arrays in an assignment context, and the
13721         aggregate has component associations that require sliding on
13722         assignment, force reanalysis of the aggregate to generate a temporary
13723         before the assignment.
13724         (Must_Slide): Make global to the package, for use in Gen_Assign.
13725
13726 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
13727
13728         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
13729         unchecked union with no inferable discriminants, return a
13730         Raise_Program_Error node, rather than inserting it at the point the
13731         type is frozen.
13732         (Expand_Record_Equality, Component_Equality): Handle properly the case
13733         where some subcomponent is an unchecked union whose generated equality
13734         code raises program error.
13735
13736 2005-02-09  Doug Rupp  <rupp@adacore.com>
13737
13738         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
13739         [VMS] (#define exit hack): Remove.
13740
13741 2005-02-09  Pascal Obry  <obry@adacore.com>
13742             Arnaud Charlet <charlet@adacore.com>
13743
13744         * init.c (__gnat_initialize): Add a new parameter eh which contains the
13745         address of the exception registration. The Win32 version of this
13746         routine calls __gnat_install_SEH_handler() to initialize the SEH
13747         (Structured Exception Handling) handler.
13748         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
13749         SEH (Structured Exception Handling) now.
13750         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
13751         (__gnat_initialize for ppc-vxworks): Adjust comments and the
13752         preprocessor condition protecting the call to the extra eh setup
13753         subprogram, which is only available for the ppc target.
13754         (__gnat_clear_exception_count): replaced reference to
13755         variable taskIdCurrent by call to taskIdSelf(), cleaner.
13756
13757         * seh_init.c: New file.
13758
13759         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
13760         (GNATBIND_OBJS): Idem.
13761
13762         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
13763         routine takes a new parameter (a pointer to the exception registration
13764         for the SEH (Structured Exception Handling) support.
13765
13766         * raise.h: (__gnat_install_SEH_handler): New prototype.
13767         Update copyright notice.
13768
13769         * s-tassta.adb (Task_Wrapper): Declare the exception registration
13770         record and initialize it by calling __gnat_install_SEH_handler.
13771
13772 2005-02-09  Vincent Celier  <celier@adacore.com>
13773
13774         * make.adb (Gnatmake): Do not fail when the main project has no object
13775         directory.
13776
13777 2005-02-09  Doug Rupp  <rupp@adacore.com>
13778
13779         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
13780         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
13781         [VMS]: Add translations for g-enblsp.adb.
13782
13783         * s-asthan-vms.adb: Removed.
13784         * s-asthan-vms-alpha.adb: Added.
13785
13786 2005-02-09  Pascal Obry  <obry@adacore.com>
13787
13788         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
13789         (LIBGNAT_OBJS): Add seh_init.o.
13790
13791 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
13792
13793         PR ada/16592
13794         * Makefile.in: Link all gnat tools with -static-libgcc, since
13795         -shared-libgcc is now used by default on some systems (e.g. linux with
13796         recent binutils).
13797         Remove references to Makefile.prolog/generic, no longer used.
13798
13799 2005-02-09  Vincent Celier  <celier@adacore.com>
13800
13801         * prj-makr.adb (Process_Directory): Put file name in canonical case
13802         before matching against the patterns.
13803         If gnatname has been invoked as <prefix>-gnatname
13804         then invoke the compiler as <prefix>-gcc, not just "gcc".
13805
13806 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
13807
13808         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
13809         with expansion disabled. The actual subtype is needed among other
13810         places when the selected component appears in the context of a loop
13811         bound, and denotes a packed array.
13812         (Operator_Check): Always use the first subtype in the
13813         error message, to avoid the appearance of internal base types.
13814         (Transform_Object_Operation): Copy each actual in full
13815         to the parameter associations of the constructed call, rather than
13816         using the shallow copy mechanism of New_Copy_List. This ensures that
13817         the chaining of named associations is done properly.
13818         (Complete_Object_Operation): Rewrite node, rather than
13819         replacing it, so that we can trace back to the original selected
13820         component.
13821
13822         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
13823         and calls that use object notation, if the called function is not
13824         declared  in a withed unit, place the elaboration constraint on the
13825         unit in the context that makes the function accessible.
13826         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
13827         imposes an elaboration constraint between two packages.
13828
13829 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
13830
13831         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
13832         views of a private type after handling its private dependents, to
13833         maintain proper stack discipline between entry and exit from the
13834         package.
13835
13836 2005-02-09  Cyrille Comar  <comar@adacore.com>
13837
13838         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
13839         Minor reformatting.
13840
13841 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
13842
13843         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
13844         fields for foreign threads.
13845
13846 2005-02-09  Doug Rupp  <rupp@adacore.com>
13847
13848         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
13849         recursion warnings when compiled with -gnatdm.
13850
13851 2005-02-09  Robert Dewar  <dewar@adacore.com>
13852
13853         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
13854         Slight fix to documentation of -gnaty with no parameters
13855
13856         * xr_tabls.ads: Add ??? comment for missing overall comment
13857
13858         * xsinfo.adb: Make default file name be sinfo.h, since this is what
13859         we now use by default.
13860
13861         * xsnames.adb: Adjust end of file test to look for five space followed
13862         by '#' instead of six spaces. The format of xsnames.adb was modified
13863         in the last update.
13864
13865         * a-numeri.ads: Add reference to AI-388 for greek letter pi
13866         identifier.
13867
13868         * clean.adb: Minor reformatting.
13869
13870         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
13871         gnatname.adb: Minor reformatting
13872         Add 2005 to copyright output when utility is run
13873
13874         * csets.adb: Eliminate obsolete comment
13875
13876         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
13877         Update comments.
13878
13879         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
13880
13881 2005-02-09  Sergey Rybin  <rybin@adacore.com>
13882
13883         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
13884         the difference between compact and incompact layout and add the record
13885         representation clause to the example illustrating different layouts.
13886         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
13887         component clauses").
13888
13889 2005-02-09  Florian Villoing  <villoing@adacore.com>
13890
13891         * gnat_ugn.texi: Fix typos.
13892         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
13893         @file.
13894         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
13895         in the generated documentation.
13896
13897 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
13898
13899         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
13900         longer supported.
13901         Update linker wrapper when linking with non GNU C++.
13902
13903 2005-02-09  Pascal Obry  <obry@adacore.com>
13904
13905         * gnat_ugn.texi:
13906         Document the procedure to debug the DllMain routine on Windows.
13907         Add note about -funwind-tables and mixed Ada and C/C++ programming in
13908         ZCX mode.
13909         Document new BIND qualifer /RETURN_CODES=VMS.
13910
13911 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
13912
13913         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
13914         Edited gnatmetric chapter
13915
13916 2005-02-09  Robert Dewar  <dewar@adacore.com>
13917
13918         * gnat_rm.texi:
13919         Changes to document new wide wide character support
13920         For AI-285
13921         Update documentation on Normalize_Scalars and Initialize_Scalars
13922
13923 2005-02-09  Pascal Obry  <obry@adacore.com>
13924
13925         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
13926
13927 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
13928
13929         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
13930         from the VxWorks kernel) that is needed for getting the active
13931         priority of the different tasks.
13932
13933         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
13934         Use a pragma Elaborate_Body in the spec file instead.
13935         Noticed by code reading.
13936
13937 2005-02-09  Thomas Quinot  <quinot@adacore.com>
13938
13939         * exp_util.ads: Minor correction in comment.
13940
13941 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
13942
13943         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
13944         since this procedure is now too complex to be worth inlining.
13945
13946 2005-02-09  Richard Henderson  <rth@redhat.com>
13947
13948         * utils.c (gnat_define_builtin): Remove.
13949         (gnat_install_builtins): Use build_common_builtin_nodes.
13950
13951 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
13952
13953         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
13954         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
13955         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
13956         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
13957         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
13958         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
13959         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
13960         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
13961         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
13962         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
13963         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
13964         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
13965         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
13966         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
13967         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
13968         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
13969         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
13970         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
13971         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
13972         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
13973         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
13974         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
13975         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
13976         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
13977         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
13978         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
13979         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
13980         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
13981         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
13982         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
13983         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
13984         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
13985         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
13986         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
13987         library.
13988
13989 2005-01-27  Laurent GUERBY <laurent@guerby.net>
13990
13991         * Makefile.in: Fix a-intnam.ads from previous commit,
13992         add 2005 to copyright.
13993         * a-intman-rtems.ads: Renamed to...
13994         * a-intnam-rtems.ads:
13995
13996 2005-01-27  Laurent GUERBY <laurent@guerby.net>
13997
13998         * Makefile.in: Rename GNAT RTEMS specific files.
13999         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
14000         5rosinte.ads, 5rparame.adb: Replaced by files below.
14001         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
14002         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
14003
14004 2005-01-27  Joel Sherrill <joel.sherrill@oarcorp.com>
14005             Laurent GUERBY <laurent@guerby.net>
14006
14007         PR ada/19488
14008         * 5rosinte.ads: Add No_Key constant.
14009         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
14010         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
14011
14012 2005-01-26  Laurent GUERBY <laurent@guerby.net>
14013
14014         PR ada/19414
14015         * i-cobol.adb (Valid_Numeric): Handle zero length case.
14016
14017 2005-01-20  Richard Henderson  <rth@redhat.com>
14018
14019         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
14020         a-intnam-linux.ads and system-linux-alpha.ads.
14021         * a-intnam-linux-alpha.ads: Remove file.
14022         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
14023         * system-linux-alpha.ads: New file.
14024
14025 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
14026
14027         PR ada/13470
14028         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
14029         set to the new string.
14030
14031 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
14032
14033         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
14034         to True.
14035
14036 2005-01-18  Richard Henderson  <rth@redhat.com>
14037
14038         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
14039         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
14040         for alpha-linux.
14041         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
14042
14043 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
14044
14045         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
14046         (GCC_ZCX_Support): Likewise.
14047
14048 2005-01-11  Bastian Blank  <waldi@debian.org>
14049
14050         * system-linux-s390.ads: Define Preallocated_Stacks.
14051         * system-linux-s390x.ads: Likewise.
14052
14053 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
14054
14055         * gnat_ugn.texi: Fix texi errors with null variables.
14056
14057 2005-01-03  Thomas Quinot  <quinot@adacore.com>
14058
14059         * gen-soccon.c: New utility program to generate g-soccon.ads
14060         automatically.
14061
14062         * socket.c, gsocket.h: Split inclusion of system header files into a
14063         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
14064
14065         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
14066         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
14067         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
14068         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
14069         should not be edited by hand anymore, but should be regenerated using
14070         gen-soccon.
14071
14072 2005-01-03  Robert Dewar  <dewar@adacore.com>
14073             Ed Schonberg  <schonberg@adacore.com>
14074             Vincent Celier  <celier@adacore.com>
14075
14076         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
14077         on/off, since this is an obsolescent feature, for which we now generate
14078         a warning.
14079
14080         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
14081         warning mode is set and obsolescent usage of this attribute occurs.
14082         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
14083         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
14084         predates, and partly motivates, the adoption of the AI.
14085         Implement new Ada 2005 attribute Mod
14086
14087         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
14088         attribute Mod.
14089
14090         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
14091
14092         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
14093         pragma restrictions.
14094         New entry for Ada 2005 attribute Mod.
14095
14096         * par-prag.adb:
14097         Add recognition of new pragma Restrictions No_Dependence
14098         Recognize restriction No_Obsolescent_Features at parse time
14099
14100         * bcheck.adb: Add circuitry for checking for consistency of
14101         No_Dependence restrictions.
14102
14103         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
14104         restrictions.
14105
14106         * restrict.ads, restrict.adb: Add subprograms to deal with
14107         No_Dependence restrictions.
14108
14109         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
14110         restrictions.
14111
14112         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
14113         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
14114
14115         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
14116         dummy parameter to scng instantiation.
14117         Needed for new restriction No_Obsolescent_Features
14118
14119         * scn.adb: (Obsolescent_Check): New procedure
14120         Needed for new restriction No_Obsolescent_Features
14121
14122         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
14123         specified by AI-285, needed for implementation of AI-388 (adding greek
14124         pi to Ada.Numerics).
14125         Add new generic formal to scng, needed for new restriction
14126         No_Obsolescent_Features.
14127
14128         * s-rident.ads: Add new restriction No_Obsolescent_Features.
14129
14130         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
14131         restrictions lines.
14132         (Scan_ALI): When finding an unexpected character on an R line, raise
14133         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
14134         Ignore_Errors is True, default restrictions are set and scanning of the
14135         ALI file continues with the next line. Also, when Bad_R_Line is raised
14136         and Ignore_Errors is True, skip to the end of le line.
14137
14138         * sem_ch10.adb: Check that explicit with's do not violate
14139         No_Dependence restrictions.
14140         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
14141         illegal context clauses containing child units of instance.
14142
14143         * sem_prag.adb: Processing and checking for new No_Dependence
14144         restrictions.
14145         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
14146         analyze and check the External argument.
14147
14148         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
14149
14150 2005-01-03  Robert Dewar  <dewar@adacore.com>
14151
14152         * atree.adb: Add a fifth component to entities
14153         This allows us to add 32 flags and four new fields
14154
14155         * atree.ads: Add a fifth component to entities
14156         This allows us to add 32 flags and four new fields
14157
14158         * einfo.ads, einfo.adb: Document new fields and new flags now available
14159         Add routines for printing new fields
14160
14161         * treepr.adb: Call routines to print out additional fields if present
14162
14163 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
14164
14165         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
14166         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
14167
14168         * Makefile.in: Add support to build shared Ada libraries on solaris x86
14169         Remove gpr2make, replaced by gprmake.
14170         Remove references to gnatmem and libaddr2line.
14171         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
14172         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
14173         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
14174         a-numaux-darwin.ads and a-numaux-darwin.adb
14175         Enable mlib-tgt-lynxos.adb on lynxos.
14176
14177         * Make-lang.in: Remove rules for gpr2make.
14178         When generating sdefault.adb, do not call Relocate_Path
14179         on S3 for function Target_Name, as it is not a path.
14180         Remove references to gnatmem and libaddr2line.
14181
14182         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
14183         files.
14184
14185 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
14186
14187         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
14188         address is incompatible with its base type alignment constraints when
14189         this can be decided statically.
14190
14191 2005-01-03  Olivier Hainque  <hainque@adacore.com>
14192
14193         * decl.c (compatible_signatures_p): New function. The intended purpose
14194         is to check if two function signatures for a call-site and a callee are
14195         compatible enough for the call to be valid. The underlying purpose is
14196         to check if a call to a mapped builtin is using the right interface.
14197         The current code actually does not check antyhing - this a placeholder
14198         for future refinements.
14199         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
14200         builtin calls for convention Intrinsic.
14201
14202         * gigi.h (builtin_decl_for): Declare (new function).
14203
14204         * utils.c (gnat_install_builtins): Install the target specific builtins.
14205         (builtin_decl_for): New function, provide a dummy body for now.
14206
14207 2005-01-03  Geert Bosch  <bosch@adacore.com>
14208
14209         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
14210         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
14211         (Pred): Implement in terms of Succ.
14212
14213         * trans.c (convert_with_check): Reimplement conversion of float to
14214         integer.
14215
14216 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
14217             Vincent Celier  <celier@adacore.com>
14218
14219         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
14220         bounds can be negative, and must be declared Int, not Nat.
14221
14222         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
14223         array is checked after using the index in the array.
14224
14225         * makegpr.adb (Add_Switches): Check if there is a package for the
14226         processor. If there is no package, do not look for switches.
14227
14228 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
14229
14230         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
14231         generation of predefined stream operations (specs and bodies) should
14232         proceed. Under various restrictions these subprograms must not be
14233         generated.
14234
14235 2005-01-03  Thomas Quinot  <quinot@adacore.com>
14236
14237         * exp_dist.adb:
14238         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
14239         amount of PCS-specific code in RACW stubs generation.
14240         (Copy_Specification): Set Etype on copied formal parameter entities, as
14241         this information is needed for PolyORB stubs generation.
14242         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
14243         variable Dynamic_Async.
14244         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
14245         (Build_RPC_Receiver_Specification): Make generic again, as recent
14246         changes have allowed RPC receivers to have the same profile for both
14247         variants of the PCS.
14248         Reorganise RPC receiver generation to reduce differences between the
14249         structure of GARLIC and PolyORB RPC receivers.
14250         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
14251         PCS-specific.
14252         Simplify elaboration code for RCI packages.
14253
14254         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
14255         generation to reduce differences between the structure of GARLIC and
14256         PolyORB RPC receivers.
14257
14258         * s-stratt.adb: Fix typo in comment.
14259
14260 2005-01-03  Thomas Quinot  <quinot@adacore.com>
14261
14262         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
14263         copied from Make_Init_Call).
14264
14265         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
14266         reads and assignments on a temporary variable declared with appropriate
14267         discriminants.
14268
14269 2005-01-03  Robert Dewar  <dewar@adacore.com>
14270
14271         * i-c.adb (To_C): Raise CE if string is null and Append_Null
14272
14273 2005-01-03  Robert Dewar  <dewar@adacore.com>
14274
14275         * i-cstrin.adb (Update): Do not append a null in form called with a
14276         String. This avoids unintended behavior.
14277
14278 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
14279
14280         PR ada/17527
14281         * init.c: Fix warnings on Free BSD section.
14282
14283 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
14284
14285         PR ada/16949
14286         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
14287         xsinfo.adb).
14288
14289 2005-01-03  Vincent Celier  <celier@adacore.com>
14290
14291         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
14292         libraries when Unique_Compile is True (-u switch).
14293         (Gnatmake): ditto.
14294
14295 2005-01-03  Robert Dewar  <dewar@adacore.com>
14296
14297         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
14298         upper case letter or underscore after W, as allowed by spec.
14299
14300 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
14301
14302         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
14303         darwin port by using proper type definitions from header files.
14304         Use SIGTERM instead of SIGABRT for SIGADAABORT.
14305
14306 2005-01-03  Robert Dewar  <dewar@adacore.com>
14307
14308         * par.adb: Enhance error message handling for configuration file
14309         pragmas.
14310
14311 2005-01-03  Robert Dewar  <dewar@adacore.com>
14312
14313         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
14314         removed during the previous update (test properly for case of dividing
14315         largest negative number by -1, which generates overflow).
14316
14317 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
14318             Sergey Rybin  <rybin@adacore.com>
14319
14320         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
14321         to use as the defining identifier for a formal package.
14322         (Remove_Parent): If the instance takes place within (an instance of)
14323         a sibling, preserve private declarations of common parent.
14324
14325 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
14326
14327         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
14328         to determine whether one of the operands is a fixed-point type for
14329         which a user-defined multiplication or division operation might be
14330         defined.
14331
14332         * sem_res.adb (Valid_Conversion): The legality rules for conversions
14333         of access types are symmetric in Ada 2005: either designated type can
14334         be unconstrained.
14335
14336 2005-01-03  Vincent Celier  <celier@adacore.com>
14337
14338         * s-fileio.adb (Temp_File_Record): Change length of string component
14339         Name from L_tmpnam + 1 to max_path_len + 1.
14340
14341 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
14342
14343         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
14344         Self_Id.Deferral_Level = 0.
14345         (Do_Pending_Action): Move this function to the spec.
14346
14347         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
14348         Do_Pending_Action explicitely when needed, in case we're using
14349         No_Abort restrictions.
14350
14351         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
14352         deferral level since it will not get changed by the generated code.
14353         Keeping a default value of 1 would prevent some operations (e.g.
14354         select or delay) to proceed successfully.
14355
14356 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
14357             Robert Dewar  <dewar@adacore.com>
14358             Cyrille Comar  <comar@adacore.com>
14359
14360         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
14361         porting guide chapter (vms version).
14362         Revised doc title (removed "for native platforms") and subtitle.
14363         Add discussion on warning flag for obsolescent features. First we
14364         note that it applies to obsolete GNAT features, which was previously
14365         omitted. Second we contrast the behavior with that of the new
14366         Ada 2005 AI-368 restriction No_Obsolescent_Features.
14367         Preliminary rewriting of GNAT & libraries chapter in order to take
14368         into account default project locations & new project manager
14369         capabilities.
14370
14371 2005-01-03  Robert Dewar  <dewar@adacore.com>
14372
14373         * cstand.adb (Create_Operators): Clean up format and documentation of
14374         unary and binary operator result tables. No change in code, just
14375         reformatting and addition of comments.
14376
14377         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
14378         sem_ch2.adb: Minor reformatting
14379
14380         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
14381         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
14382         comments for Tree_Read and Tree_Write.
14383
14384 2005-01-03  Pascal Obry  <obry@adacore.com>
14385
14386         * exp_attr.ads: Minor reformatting.
14387
14388 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
14389
14390         * comperr.adb (Compiler_Abort): Add specialized message for GAP
14391         versions.
14392
14393 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
14394
14395         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
14396         whether the ancestor type is private, as may be the case with nested
14397         instantiations.
14398
14399 2004-12-30  Sohail Somani <sohail@sohailsomani.com>
14400
14401         PR ada/19128
14402         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
14403
14404 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
14405
14406         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
14407         * utils2.c (build_unary_op): Likewise.
14408
14409 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14410
14411         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
14412
14413 2004-12-19  Richard Henderson  <rth@redhat.com>
14414
14415         * trans.c (gigi): Update gimplify_body call.
14416
14417 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
14418
14419         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
14420
14421 2004-12-07  Ed Falis  <falis@adacore.com>
14422
14423         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
14424         current task being suspended.
14425
14426         * init.c (__gnat_clear_exception): added to reset VxWorks exception
14427         count.
14428         (__gnat_map_signal): removed test for current task being suspended.
14429
14430 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
14431
14432         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
14433         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
14434         targets (such as AAMP).
14435
14436 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
14437
14438         * atree.adb (Visit_Itype): Create a new name for the generated itype,
14439         because the back-end may otherwise treat it as a redefinition of the
14440         old symbol.
14441
14442 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
14443
14444         * back_end.adb (Scan_Back_End_Switches): Accept --param.
14445
14446         * lang-specs.h: Accept --param.
14447
14448 2004-12-07  Vincent Celier  <celier@adacore.com>
14449
14450         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
14451         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
14452         Current_Body_Suffix => Ada_Body_Suffix).
14453         Take into account Externally_Built attribute.
14454
14455         * clean.adb (In_Extension_Chain): Always return False when one of the
14456         parameter is No_Project.
14457         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
14458         Ada_Language_Index).
14459         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
14460         Process_Languages for procedure Parse).
14461
14462         * gnatcmd.adb (Carg_Switches): New table.
14463         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
14464         Adapt to name changes in package Prj (Current_Spec_Suffix =>
14465         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
14466
14467         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
14468         Header_Num and function Hash are now declared in package Prj,
14469         not Prj.Com.
14470
14471         * prj.adb (Suffix_Of): New function.
14472         (Set (Suffix)): New procedure.
14473         (Hash): One function moved from Prj.Com
14474         (Is_Present, Language_Processing_Data_Of): New functions
14475         (Set): Two new procedures
14476         (Add_Language_Name, Display_Language_Name): New procedures
14477
14478         * prj.ads: (Suffix_Of): New function
14479         (Set (Suffix)): New procedure
14480         Add several types and tables for multi-language support.
14481         (Header_Num): Type moved from Prj.Com
14482         (Hash): Two functions moved from Prj.Com
14483         (Is_Present, Language_Processing_Data_Of): New functions
14484         (Set): Two new procedures
14485         (Add_Language_Name, Display_Language_Name): New procedures
14486         (Naming): Component name changes:
14487         Current_Spec_Suffix => Ada_Spec_Suffix,
14488         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
14489         Impl_Suffixes, Supp_Suffixes.
14490         (Project_Data): New components: Externally_Built, Supp_Languages,
14491         First_Language_Processing, Supp_Language_Processing, Default_Linker,
14492         Default_Linker_Path.
14493
14494         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
14495         new package Language_Processing with its attributes (Compiler_Driver,
14496         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
14497         Binder_Driver, Default_Linker).
14498
14499         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
14500         (Header_Num): Type moved to package Prj
14501
14502         * prj-env.adb: Adapt to name changes in package Prj
14503         (Current_Spec_Suffix => Ada_Spec_Suffix,
14504         Current_Body_Suffix => Ada_Body_Suffix).
14505
14506         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
14507         default to the project path, except the "-" is one of the directories
14508         in env var ADA_PROJECT_PATH.
14509         (Current_Project_Path): Global variable, replacing Project_Path
14510         that was in the body of Prj.Part.
14511         (Project_Path): New function
14512         (Set_Project_Path): New procedure
14513         Initialize Current_Project_Path during elaboration of the package
14514         Remove dependency on Prj.Com, no longer needed
14515
14516         * prj-ext.ads (Project_Path): New function
14517         (Set_Project_Path): New procedure
14518
14519         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
14520         suffix is defined for language <lang>.
14521         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
14522         accessing directly the components of Naming.
14523         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
14524         Reorganise of this package.
14525         Break procedure Check in several procedures.
14526
14527         * prj-nmsc.ads: Replace all procedures (Ada_Check,
14528         Other_Languages_Check and Language_Independent_Check) with a single
14529         procedure Check.
14530
14531         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
14532         Process_Languages, no longer needed.
14533
14534         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
14535         Current_Project_Path.
14536         Remove elaboration code, moved to the body of Prj.Ext
14537         Use new function Prj.Ext.Project_Path instead of old variable
14538         Project_Path.
14539         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
14540         When comparing with project paths on the stack, first put the resolved
14541         path in canonical case.
14542         (Parse_Single_Project): Set the path name of the project file in the
14543         tree to the normalized path.
14544
14545         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
14546         parameter Process_Languages, no longer needed.
14547         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
14548         Other_Languages_Check.
14549
14550         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
14551         to store the resolved canonical path of the project file.
14552         Remove dependency to Prj.Com, no longer needed
14553
14554         * prj-util.adb: Adapt to name changes in package Prj
14555         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
14556         Ada_Body_Suffix).
14557
14558         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
14559         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
14560         Externally_Built, Include_Option, Language_Processing.
14561
14562         * makegpr.adb: Numerous changes due to changes in packages
14563         Prj and Prj.Nmsc.
14564
14565         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
14566         default to the project path, except whe "-" is one of the directories
14567         in env var ADA_PROJECT_PATH.
14568         (Gnatls): In verbose mode, add the new section "Project Search Path:"
14569
14570 2004-12-07  Robert Dewar  <dewar@adacore.com>
14571
14572         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
14573
14574         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
14575         set -gnatR3m mode.
14576
14577         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
14578         flag. No longer needed now that we handle this in gnat1drv.adb.
14579
14580         * repinfo.ads: Minor reformatting
14581
14582 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14583             Olivier Hainque  <hainque@adacore.com>
14584             Eric Botcazou  <ebotcazou@adacore.com>
14585
14586         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
14587         TYPE_SIZE_UNIT of result type if SIZE is not specified.
14588         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
14589         of a bitfield, which we know is useless and causes trouble because of
14590         alignment implications.
14591
14592         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
14593         BSS sections.
14594         (process_attributes): Clear DECL_COMMON again when a section attribute
14595         is present.
14596         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
14597         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
14598         (create_field_decl): Special case ADDRESSABLE negative to mean
14599         "no bitfield creation", to be used by make_aligning_type. Don't
14600         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
14601         fields claimed addressable still have to be bitfields. Use
14602         value_factor_p instead of a raw binop construction to check for the
14603         position's alignment.
14604
14605 2004-12-07  Geert Bosch  <bosch@adacore.com>
14606
14607         * eval_fat.adb: Revert previous change.
14608
14609 2004-12-07  Thomas Quinot  <quinot@adacore.com>
14610             Ed Schonberg  <schonberg@adacore.com>
14611
14612         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
14613         with an implicit dereference as its prefix, use
14614         Insert_Explicit_Dereference instead of merely rewriting the prefix into
14615         an explicit dereference. This ensures that a reference to the original
14616         prefix is generated, if appropriate.
14617
14618         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
14619         dereference is rewritten to an explicit one, generate a reference to
14620         the entity denoted by its prefix using the original prefix node, so
14621         the dereference can be properly recorded as a read of the denoted
14622         access value, if appropriate.
14623
14624         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
14625         emitting 'assigned but never read' warning on a variable on the basis
14626         that it has an access type.
14627         (Check_References): Emit unreferenced warning when the scope is a
14628         subprogram body.
14629
14630 2004-12-07  Robert Dewar  <dewar@adacore.com>
14631             Ed Schonberg  <schonberg@adacore.com>
14632
14633         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
14634         intrinsic
14635
14636         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
14637         leaving call unchanged.
14638         This deals with the case where the pragma Import specified
14639         an external name, to be handled by the back end.
14640
14641         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
14642         subprogram which is Imported with convention Intrinsic if an
14643         External_Name argument is specified.
14644         (Process_Import_Or_Interface): Properly diagnose link name argument.
14645         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
14646         with Sem_Ch6.Cannot_Inline.
14647         (Process_Inline): Provide separate warning for inapplicable inline
14648         pragma.
14649         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
14650         treatment is uniform on different targets.
14651
14652 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
14653
14654         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
14655         construct is rewritten, preserve end label to permit source navigation.
14656
14657 2004-12-07  Thomas Quinot  <quinot@adacore.com>
14658
14659         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
14660         Specific_Build_Stub_Target): New subprograms.
14661         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
14662         the PCS implementation used, using the above PCS-customized subprograms.
14663         Minor reformatting.
14664         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
14665         for generation of DSA code targeted to the PolyORB PCS.
14666         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
14667         implementation of the partition communication subsystem in ancillary
14668         subprograms.
14669         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
14670         PolyORB_Support.Build_Stub_Type): New subrograms containing the
14671         PCS-specific part of Add_Stub_Type.
14672         (Insert_Partition_Check): Use runtime library function to perform
14673         E.4(19) check.
14674
14675         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
14676         (RE_Same_Partition): New entity, from s-parint.
14677
14678         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
14679
14680 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
14681
14682         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
14683         Output the copyright message on a separate line from the version
14684         message.
14685
14686 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
14687
14688         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
14689         compile-time warning.
14690
14691 2004-12-07  Robert Dewar  <dewar@adacore.com>
14692
14693         * g-regpat.adb: (Match): Change a misuse of or to or else
14694
14695 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
14696
14697         * lib-xref.adb:
14698         (Generate_Reference): Handle properly a reference to an entry formal,
14699          when an accept statement has a pragma Unreferenced for it.
14700
14701         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
14702         and the Has_Pragma_Unreferenced flag for each formal before analyzing
14703         the body, to ensure that warnings are properly emitted for each accept
14704         statement of a given task entry.
14705
14706 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
14707
14708         * Makefile.in: Add support for foreign threads on VMS.
14709
14710 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14711
14712         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
14713         Remove.
14714         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
14715
14716         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
14717
14718         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
14719         exception.
14720         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
14721
14722 2004-12-07  Robert Dewar  <dewar@adacore.com>
14723
14724         * nlists.adb (Prepend_Debug): Remove parameters and nest within
14725         Prepend.
14726         (Remove_Next_Debug): Same fix
14727
14728         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
14729         maintain back pointers now, though we did not used to, and comments
14730         were out of date).
14731         (Prepend): Remove pragma Inline.
14732         (Remove_Next): Same cleanup
14733
14734 2004-12-07  Thomas Quinot  <quinot@adacore.com>
14735
14736         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
14737         used to record an implicit dereference as a read operation on its
14738         prefix when operating under -gnatc. Necessary to avoid spurious
14739         'variable assigned but never read' warnings in that mode.
14740         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
14741         is a non-overloaded implicit dereference, call the above subprogram to
14742         ensure proper recording of references.
14743
14744 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
14745
14746         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
14747         to be resolved later as part of Analyze_Iteration_Scheme's call to
14748         Make_Index.
14749
14750 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
14751
14752         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
14753         prefix is not a scalar type, place error message on prefix, not on
14754         type entity.
14755
14756 2004-12-07  Bernard Banner  <banner@adacore.com>
14757
14758         * vxaddr2line.adb: Add support for x86 vxworks
14759
14760 2004-12-07  Thomas Quinot  <quinot@adacore.com>
14761
14762         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
14763         documentation of the behaviour of these functions when passed an IP
14764         address that has no record in the system hosts database and no reverse
14765         record in the DNS.
14766
14767         * cstand.adb, a-tags.ads: Fix typos in comment.
14768
14769 2004-12-07  Robert Dewar  <dewar@adacore.com>
14770
14771         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
14772         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
14773         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
14774         s-poosiz.ads: Minor reformatting
14775
14776         * make.adb: Minor reformatting
14777         Add some ??? comments asking for more comments
14778
14779         * s-poosiz.adb: Minor reformatting
14780         Add comments on alignment requirement
14781
14782         * sinfo.ads: Remove obsolete comment and fix typo.
14783
14784 2004-12-07  Vincent Celier  <celier@adacore.com>
14785             Sergey Rybin  <rybin@adacore.com>
14786
14787         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
14788         Files" with the new tool and package names.
14789         Reformatting to suppress most of the warnings for line too long
14790         Document the new section "Project Search Path:" in the output of
14791         gnatls -v.
14792         Add gnatmetric section
14793
14794 2004-12-07  Vincent Celier  <celier@adacore.com>
14795
14796         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
14797         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
14798         and -eit to -ept. Added qualifier
14799         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
14800
14801 2004-11-27  Andreas Schwab  <schwab@suse.de>
14802
14803         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
14804
14805 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
14806
14807         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
14808         internal implementation unit GNAT.Sockets.Thin,
14809         as their usage for sockets is non-portable (using the read and write
14810         functions from the system runtime library is fine on UNIX but won't
14811         work under Windows).
14812
14813         * mingw32.h: Update copyright notice.
14814
14815 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
14816
14817         * ada-tree.h: Minor reformatting of previous change to avoid lines
14818         longer than 79 characters.
14819
14820 2004-11-25  Olivier Hainque  <hainque@adacore.com>
14821
14822         * tb-gcc.c: GCC infrastructure based implementation of
14823         __gnat_backtrace.
14824
14825 2004-11-24  Steven Bosscher  <stevenb@suse.de>
14826
14827         * misc.c (gnat_post_options): Don't clear
14828         flag_inline_functions.
14829
14830 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
14831
14832         PR ada/17986
14833         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
14834         tree.
14835
14836 2004-11-21  Andreas Jaeger  <aj@suse.de>
14837
14838         * stylesw.adb: Change Style_Check_Subprogram_Order to
14839         Style_Check_Order_Subprograms.
14840
14841 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
14842
14843         * adaint.h, adaint.c
14844         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
14845         to avoid warnings.
14846         Add also a cast to kill another warning.
14847         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
14848         parameter with the priority class of the parent process instead of
14849         always using the NORMAL_PRIORITY_CLASS.
14850         (__gnat_dup): New function.
14851         (__gnat_dup2): New function.
14852         (__gnat_is_symbolic_link): Enable the effective body of this
14853         function when __APPLE__ is defined.
14854
14855         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
14856         Update comments.
14857
14858 2004-11-18  Olivier Hainque  <hainque@adacore.com>
14859
14860         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
14861         address of which may be used to represent "others" and "all others"
14862         choices in exception tables, instead of the current harcoded
14863         (void *)0 and (void *)1.
14864         (Setup_Exception): Do nothing in the GNAT SJLJ case.
14865
14866         * gigi.h (others_decl, all_others_decl): New decls representing the
14867         new Others_Value and All_Others_Value objects.
14868         (struct attrib): Rename "arg" component as "args", since GCC expects a
14869         list of arguments in there.
14870
14871         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
14872         corresponding objects exported by a-exexpr, instead of hardcoded dummy
14873         addresses.
14874
14875         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
14876         others_decl and all_others_decl instead of hardcoded dummy addresses
14877         to represent "others" and "all others" choices, which is cleaner and
14878         more flexible with respect to the possible eh pointer encoding policies.
14879
14880         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
14881         (process_attributes): Account for the naming change of the "args"
14882         attribute list entry component.
14883
14884         * decl.c (build_attr_list): Rename into prepend_attributes to allow
14885         cumulating attributes for different entities into a single list.
14886         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
14887         attributes for the current entity and propagate first subtype
14888         attributes to other subtypes.
14889         <E_Procedure>: Attribute arguments are attr->args and not
14890         attr->arg any more.
14891         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
14892         argument provided, as this is what GCC expects. Use NULL_TREE instead
14893         of 0 for trees.
14894
14895 2004-11-18  Robert Dewar  <dewar@adacore.com>
14896
14897         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
14898         Minor reformatting througout (including new function specs)
14899         Add ??? comments asking for clarification.
14900
14901 2004-11-18  Thomas Quinot  <quinot@adacore.com>
14902
14903         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
14904         incomplete duplicate implementation of this subprogram from butil.
14905
14906 2004-11-18  Thomas Quinot  <quinot@adacore.com>
14907
14908         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
14909         procedures factors the common processing for building an RPC receiver
14910         for an RCI package or an RACW type.
14911         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
14912         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
14913         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
14914         in use.
14915         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
14916         Add_RACW_Features.
14917         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
14918         Add_RAST_Features.
14919         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
14920         distribution subprogram identifiers that are either subprogram numbers
14921         or strings.
14922         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
14923         string distribution identifiers assigned to a given subprogram.
14924         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
14925         (Add_RAS_Dereference_TSS): Add comments.
14926         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
14927         is not referenced yet because it will be used by the PolyORB DSA
14928         implementation.
14929         (Insert_Partition_Check): Remove fossile code.
14930         (First_RCI_Subprogram_Id): Document this constant.
14931         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
14932         RAS_Access TSS.
14933         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
14934         replaced with calls to Get_Library_Unit_Name_String. Previously there
14935         were several instances of the same code in different locations in the
14936         compiler; this checkin completes the replacement of all of these
14937         instances with calls to a common subprogram.
14938         Minor reformatting.
14939
14940         * sem_dist.adb: Remove comment noting that RPC receiver generation
14941         should be disabled for RACWs that implement RASs.
14942         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
14943
14944         * sem_util.ads, sem_util.adb (Has_Stream): New function
14945         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
14946         qualified name of a library unit into the name buffer.
14947         (Note_Possible_Modification): Generate a reference only
14948         if the context comes from source.
14949
14950         * snames.ads (PCS_Names): New subtype corresponding to names of
14951         supported implementations of the Partition Communication Subsystem
14952         (PCS) (i.e. the runtime library support modules for the distributed
14953         systems annex).
14954
14955 2004-11-18  Robert Dewar  <dewar@adacore.com>
14956             Ed Schonberg  <schonberg@adacore.com>
14957
14958         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
14959         (Has_Rep_Pragma): New function
14960         (Has_Attribute_Definition_Clause): New function
14961         (Record_Rep_Pragma): Moved here from sem_ch13.adb
14962         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
14963
14964         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
14965
14966         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
14967         (Expand_Pragma_Psect_Object): New procedure
14968         These procedures contain the revised and cleaned up processing for
14969         these two pragmas. This processing was formerly in Sem_Prag, but
14970         is more appropriately moved here. The cleanup involves making sure
14971         that the pragmas are properly attached to the tree, and that no
14972         nodes are improperly shared.
14973
14974         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
14975         pragmas to Exp_Prag, which is more appropriate.
14976         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
14977         check for duplicates Remove use of Is_Psected flag, no longer needed.
14978         Use new Make_String_Literal function with string.
14979
14980         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
14981         that are functions return universal values, that have to be converted
14982         to the context type.
14983         Use new Make_String_Literal function with string.
14984         (Get_Stream_Convert_Pragma): New function, replaces the use of
14985         Get_Rep_Pragma, which had to be kludged to work in this case.
14986
14987         * freeze.adb: Use new Has_Rep_Pragma function
14988
14989         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
14990         function with string.
14991         Use new Has_Rep_Pragma function.
14992
14993         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
14994         string argument.
14995
14996 2004-11-18  Robert Dewar  <dewar@adacore.com>
14997
14998         * errout.ads, errout.adb: (First_Sloc): New function
14999
15000         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
15001         check (-gnatyx) instead of being included as a redundant construct
15002         warning.
15003
15004         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
15005         Style_Check_Order_Subprograms.
15006
15007         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
15008         stylesw.adb: Add Style_Check_Xtra_Parens
15009
15010         * usage.adb: Add line for -gnatyx (check extra parens)
15011
15012         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
15013
15014 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
15015             Robert Dewar  <dewar@adacore.com>
15016
15017         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
15018         discriminant of a constrained subtype, analyze the copy of the
15019         corresponding constraint, because in some cases it may be only
15020         partially analyzed.
15021         Removes long-lived ??? comments.
15022
15023         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
15024         handled controlled or secondary-stack expressions within the
15025         iteration_scheme of a loop.
15026
15027         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
15028         bounds that may contain functions calls, to prevent memory leaks when
15029         the bound contains a call to a function that uses the secondary stack.
15030         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
15031         generate temporaries for loop bounds that might contain function calls
15032         that require secondary stack and/or finalization actions.
15033
15034         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
15035         selected component and the selector is overloadable (not just a
15036         function) treat as function call, Analyze_Call will disambiguate if
15037         necessary.
15038         (Analyze_Selected_Component): Do not generate an actual subtype for the
15039         selected component if expansion is disabled. The actual subtype is only
15040         needed for constraint checks.
15041         (Analyze_Allocator): If restriction No_Streams is set, then do
15042         not permit objects to be declared of a stream type, or of a
15043         composite type containing a stream.
15044
15045         * restrict.ads: Remove the a-stream entry from Unit_Array, since
15046         No_Streams no longer prohibits with'ing this package.
15047
15048         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
15049         discriminants, but the parent base has unknown discriminants, there is
15050         no discriminant constraint to inherit. Such a discrepancy can arise
15051         when the actual for a formal type with unknown discriminants is a
15052         similar private type whose full view has discriminants.
15053         (Analyze_Object_Declaration): If restriction No_Streams is set, then
15054         do not permit objects to be declared of a stream type, or of a
15055         composite type containing a stream.
15056
15057 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
15058
15059         * exp_dbug.ads: Update documentation to reflect simpler encoding for
15060         protected operations.
15061
15062         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
15063         generated name, it complicates decoding in gdb and hinders debugging
15064         of protected operations.
15065         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
15066         flag for the protected entry barrier function.
15067         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
15068         flag for the protected entry function.
15069
15070 2004-11-18  Nicolas Setton  <setton@adacore.com>
15071
15072         * expect.c: Define __unix__ when __APPLE__ is defined.
15073
15074         * Makefile.in: Inform the value of the variable GMEM_LIB in the
15075         Darwin-specific section.
15076
15077         * lang-specs.h: Change the placement of the %1 marker.
15078         Works around the fact that gcc adds -fPIC by default under Darwin.
15079
15080 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
15081
15082         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
15083         type of the object with the packed array type, set the Analyzed flag
15084         on the object if it is an entity or simple indexed component, to avoid
15085         spurious type errors.
15086
15087 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
15088
15089         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
15090         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
15091         separate line from the version message.
15092
15093 2004-11-18  Ed Falis  <falis@adacore.com>
15094
15095         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
15096         vthreads.
15097         (init_float): Eliminate initialization of floating point status for
15098         AE653. The instructions have no effect for vThreads.
15099
15100 2004-11-18  Vincent Celier  <celier@adacore.com>
15101
15102         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
15103         gnatbind is invoked with -shared.
15104
15105 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
15106
15107         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
15108         for Detect_Blocking which is redundant with the check done within the
15109         procedure Protected_Single_Entry_Call.
15110         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
15111         Detect_Blocking which is redundant with the check done within the
15112         procedure Protected_Single_Entry_Call.
15113
15114 2004-11-18  Vincent Celier  <celier@adacore.com>
15115
15116         * makegpr.adb (Compile): Put the compiling switches (in package
15117         Compiler and on the command line) immediately after "-c", instead of
15118         at the end of the command line invocation of the compiler, when
15119         compiling a non-Ada file.
15120         (Build_Global_Archive): When there is no need to rebuild the archive,
15121         set Global_Archive_Exists, so that the archive is passed to the linker
15122         if one is needed.
15123
15124 2004-11-18  Robert Dewar  <dewar@adacore.com>
15125             Sergey Rybin  <rybin@adacore.com>
15126
15127         * gnat_ugn.texi:
15128         Remove extra paren check from list of checks for redundant constructs
15129         Add documentation of new -gnatyx style check (check extra parens)
15130         Remove paragraph about gnatelim debug options.
15131
15132         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
15133         objects rather than forbidding dependencies on the package Ada.Streams.
15134
15135         * sinfo.ads: Add ??? note that we should document pragmas passed to
15136         back end.
15137
15138         * g-expect.ads: Fix a few typos in the comments.
15139
15140 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
15141
15142         * misc.c (gnat_handle_option): Use %< and %> for quoting in
15143         warning message.
15144
15145 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15146
15147         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
15148
15149 2004-11-07  Andreas Schwab  <schwab@suse.de>
15150
15151         * Makefile.in (install-gnatlib): Remove spurious hyphen.
15152
15153 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
15154
15155         PR ada/18228
15156         * Makefile.in (darwin): Set soext to .dylib.
15157
15158 2004-10-26  Vincent Celier  <celier@gnat.com>
15159             Thomas Quinot   <quinot@act-europe.fr>
15160
15161         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
15162         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
15163         there is no use of GNAT.Sockets.Constants.
15164         Remove remaining pragma Import for C_Write
15165         Remove C_Read and C_Write from internal implementation unit
15166         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
15167         the read and write functions from the system runtime library is fine
15168         on UNIX but won't work under Windows).
15169
15170         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
15171         (Check_Selector): Use C_Recv instead of C_Read.
15172         Selectors are the GNAT.Sockets abstraction to perform a select()
15173         call on a set of descriptors. To allow abortion of an ongoing
15174         select operation, some data is written to a dedicated socket that
15175         is always monitored.
15176         Under Windows, the write and read library functions cannot operate
15177         on sockets, so we need to use send and recv instead, which is portable
15178         across all supported platforms.
15179
15180         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
15181         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
15182         (using the read and write functions from the system runtime library is
15183         fine on UNIX but won't work under Windows).
15184
15185 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
15186
15187         * mlib-tgt-darwin.adb: New file.
15188
15189         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
15190         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
15191         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
15192         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
15193         subprogram body.
15194
15195         * Makefile.in: Add support for building shared libraries under Darwin.
15196         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
15197         the low level EH init subprogram to be called from __gnat_initialize.
15198
15199         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
15200         indicates which options to pass to the archive indexer.
15201
15202         * mlib-utl.adb: Add support for calling ranlib with additional
15203         options. This is needed for instance under Mac OS X.
15204         (Ranlib_Options): New global variable, used to store the potential
15205         options to pass to ranlib.
15206         (Ar): Use Ranlib_Options when spawning ranlib.
15207         (Initialize): Set the value of ranlib option.
15208
15209 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
15210
15211         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
15212         instead of 8K, to reflect the real potential needs for stack-checking
15213         in the ZCX case.
15214
15215 2004-10-26  Pascal Obry  <obry@gnat.com>
15216
15217         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
15218
15219         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
15220         Windows only the initial thread stack size can be set so it is good to
15221         start we a low stack size.
15222         The OS will adjust the size as needed.
15223
15224 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
15225             Nicolas Setton  <setton@act-europe.fr>
15226
15227         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
15228         "__unix__" instead of "unix".
15229         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
15230         sections were just mistakenly ignored. The former is
15231         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
15232         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
15233         of hpux. This prevents an unwanted definition of the symbol
15234         convert_addresses in adaint.o.
15235
15236 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
15237
15238         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
15239         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
15240
15241 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
15242
15243         * a-filico.ads, a-filico.adb: fix incorrect header.
15244
15245 2004-10-26  Javier Miranda  <miranda@gnat.com>
15246
15247         * a-ststio.ads: Fix typo in identifier
15248
15249 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
15250
15251         * sem_ch4.adb: Minor reformatting.
15252
15253 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
15254
15255         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
15256         enabled, check the result of unary and binary operations when the
15257         expression is the right-hand side of an assignment.
15258
15259 2004-10-26  Vincent Celier  <celier@gnat.com>
15260
15261         * clean.adb (Delete): Do not output warnings when in quiet output and
15262         not in verbose mode.
15263         (Force_Deletions): New Boolean flag, defaulted to False
15264         (Delete): Only delete a file if it is writable, and when
15265         Force_Deletions is True.
15266         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
15267         (Usage): Line for new switch -f
15268         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
15269         own.
15270
15271 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
15272
15273         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
15274         JM type only if its size matches that of the wrapper.  When a size is
15275         prescribed and the field is not aliased, remove the wrapper of a JM
15276         type only if the size is not greater than that of the packed array.
15277         (gnat_to_gnu_entity): Change the extension of packed array wrappers
15278         from LJM to JM.
15279
15280 2004-10-26  Geert Bosch  <bosch@gnat.com>
15281
15282         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
15283         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
15284         (Pred): Implement in terms of Succ.
15285
15286 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
15287
15288         * exp_aggr.adb (Safe_Component): An aggregate component that is an
15289         unchecked conversion is safe for in-place use if the expression of the
15290         conversion is safe.
15291         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
15292         be expandable in place even if the aggregate does not come from source.
15293         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
15294         designated object of an allocator in place, rather than building it
15295         first on the stack. The previous scheme forces a full copy of the array,
15296         and may be altogether unsusable if the size of the array is too large
15297         for stack allocation.
15298
15299 2004-10-26  Robert Dewar  <dewar@gnat.com>
15300
15301         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
15302         compares if the component is atomic.
15303
15304         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
15305         array assignment if the component type is atomic.
15306
15307 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
15308             Eric Botcazou  <ebotcazou@act-europe.fr>
15309
15310         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
15311         is aliased and is a by_reference type, do not pass by copy.
15312         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
15313         detect whether the call is in the right side of an assignment or
15314         the expression of an object declaration.  Recurse on component
15315         association within aggregates.
15316         Call it in the condition that determines whether the temporary is
15317         necessary for correct stack-checking.
15318
15319 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
15320
15321         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
15322         RACW_Type, used in the PolyORB version.
15323         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
15324         version and the GARLIC version.
15325
15326         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
15327         Rename RCI_Info to RCI_Locator for better consistency between the
15328         GARLIC and PolyORB versions of the distributed systems annex.
15329         (DSA_Implementation_Name): This enumeration lists the possible
15330         implementations of the Partition Communication Subsystem for the
15331         Distributed Systems Annex (DSA). The three available implementations
15332         are the dummy stub implementation (No_DSA), and two versions based on
15333         two different distribution runtime libraries: GARLIC and PolyORB. Both
15334         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
15335         technology.
15336         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
15337         that organization.
15338
15339         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
15340         between the GARLIC and PolyORB versions of the distributed systems
15341         annex.
15342         Remove RE_Unbounded_Reclaim_Pool since it is unused.
15343
15344 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
15345
15346         * gnat1drv.adb: Suppress calling the back end when
15347         Frontend_Layout_On_Target is true.
15348
15349 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
15350
15351         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
15352         Set_Read_Only): New subprograms.
15353         These new routines allow the user to set or unset the Owner execute
15354         and Owner write permission flags on a file.
15355
15356         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
15357         GNAT.OS_Lib.Set_Executable instead of rolling our own.
15358
15359 2004-10-26  Matthew Gingell  <gingell@gnat.com>
15360
15361         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
15362
15363 2004-10-26  Pascal Obry  <obry@gnat.com>
15364
15365         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
15366         memory before the faulting page we properly test the process read
15367         access for this address using appropriate Win32 routine.
15368         (HPUX sections): guard with "__hpux__" instead of "hpux".
15369
15370 2004-10-26  Robert Dewar  <dewar@gnat.com>
15371
15372         * lib-xref.adb (Generate_Reference): Don't complain about reference to
15373         entry parameter if pragma Unreferenced set, since we do not properly
15374         handle the case of multiple parameters.
15375
15376 2004-10-26  Vincent Celier  <celier@gnat.com>
15377
15378         * prj-env.adb: (Contains_ALI_Files): New Boolean function
15379         (Ada_Objects_Path.Add): For a library project, add to the object path
15380         the library directory only if there is no object directory or if the
15381         library directory contains ALI files.
15382         (Set_Ada_Paths.Add.Recursive_Add): Ditto
15383
15384 2004-10-26  Vincent Celier  <celier@gnat.com>
15385
15386         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
15387         extension of library projects.
15388
15389         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
15390         path defaults to ".:<prefix>/lib/gnat".
15391         (Parse): For an extending all project, allow direct import of a project
15392         that is virtually extended.
15393
15394         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
15395         the specified name is directly imported, return its ID. Otherwise, if
15396         an extension of this project is imported, return the ID of the
15397         extension.
15398
15399 2004-10-26  Robert Dewar  <dewar@gnat.com>
15400
15401         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
15402         (Sub3): New procedure, used by Scaled_Divide
15403         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
15404         correct more than one instance of failure to propagate carries
15405         correctly.
15406         (Double_Divide): Handle overflow case of largest negative number
15407         divided by minus one.
15408
15409         * s-arit64.ads (Double_Divide): Document that overflow can occur in
15410         the case of a quotient value out of range.
15411         Fix comments.
15412
15413 2004-10-26  Robert Dewar  <dewar@gnat.com>
15414
15415         * s-bitops.adb (Bit_Eq): Remove redundant check.
15416
15417         * s-bitops.ads: Minor comment updates
15418         Change some occurrences of Address to System.Address
15419
15420         * s-carsi8.ads: Fix minor cut-and-paste error in comments
15421
15422 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
15423
15424         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
15425         accessibility check to prefix that is a protected operation.
15426
15427 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
15428
15429         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
15430         empty, post message on stub.
15431
15432 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
15433             Javier Miranda  <miranda@gnat.com>
15434
15435         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
15436         current instance appears within a unit that is directly in the context
15437         of the main unit.
15438         Used to determine whether the body of the instance should be analyzed
15439         immediately after its spec, to make its subprogram bodies available
15440         for front-end inlining.
15441         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
15442         constraint is not allowed on the component type (AARM 12.5.3(3))
15443
15444 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
15445
15446         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
15447         'Storage_Pool): enhance, document & limit detection of non-sharable
15448         internal pools.
15449
15450         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
15451
15452         * s-pooglo.ads: Add more documentation now that this pool is properly
15453         documented.
15454
15455 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
15456
15457         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
15458         or protected type with discriminants, do not constrain the
15459         corresponding record type if the subtype declaration has no
15460         discriminant constraints. This can be the case in source code, or in
15461         the subtype declaration created to rename an actual type within an
15462         instantiation.
15463
15464 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
15465
15466         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
15467         different kind of stub (possibly wrong name for file), do not check
15468         for conformance.
15469         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
15470         includes call to some function that returns an unconstrained type, do
15471         not inline.
15472
15473 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
15474
15475         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
15476         appear in the code for the main unit. Dependencies among units in the
15477         context of the main unit are established when those other units are
15478         compiled. Otherwise spurious elaboration constraints can generate
15479         incorrect elaboration circularities.
15480
15481 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
15482             Ed Schonberg   <schonberg@gnat.com>
15483
15484         * sem_util.adb (Is_Aliased_View): Defend against the case where this
15485         subprogram is called with a parameter that is not an object name. This
15486         situation arises for some cases of illegal code, which is diagnosed
15487         later, and in this case it is wrong to call Is_Aliased, as that might
15488         cause a compiler crash.
15489         (Explain_Limited_Type): Refine previous fix to include
15490         inherited components of derived types, to provide complete information.
15491
15492         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
15493         is the prival for a protected object.
15494         It is necessary to mark this entity as a variable, in addition to
15495         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
15496         modified to avoid checking the Aliased flag on entities that are not
15497         objects. (Checking that flag for non-objects is erroneous and could
15498         lead to a compiler crash).
15499
15500 2004-10-26  Robert Dewar  <dewar@gnat.com>
15501
15502         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
15503         X_Frac = 0.5, then we know that the number X must be positive.
15504         (Succ): Remove the same redundant test, and also fix the primary test
15505         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
15506         Minor reformatting
15507         (Decompose): Add fuller comments to spec
15508
15509 2004-10-26  Pascal Obry  <obry@gnat.com>
15510
15511         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
15512         validity (process must have read access). Set to 0 in all other cases.
15513         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
15514         violation on Win32.
15515         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
15516         segmentation violation.
15517
15518 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
15519
15520         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
15521         whose type is a constructed subtype of an aliased object with an
15522         unconstrained nominal subtype, convert the actual to the constructed
15523         subtype before taking its address.
15524
15525 2004-10-26  Vincent Celier  <celier@gnat.com>
15526
15527         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
15528         (Is_Path_Name_Case_Sensitive): New function
15529
15530         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
15531         (Base_Name, Simple_Name, Current_Directory, Compose,
15532         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
15533         the result.
15534
15535 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
15536             Vasiliy Fofanov  <fofanov@act-europe.fr>
15537             Vincent Celier   <celier@gnat.com>
15538
15539         * gnat_ugn.texi: Generalize "finding memory problems" section into a
15540         "memory management issues" section and document some of the useful
15541         memory pools provided as part of the GNAT library.
15542         Remove "virtual" from declaration of A::method2 in
15543         the simple example of Ada/C++ mixed system.
15544         Library Projects may be virtually extended: their virtual extensions
15545         are not Library Projects.
15546         Added section on extending project hierarchies.
15547
15548 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
15549
15550         * adaint.c (__gnat_get_libraries_from_registry): Cast value
15551         to LPBYTE.
15552         (__gnat_portable_spawn): Remove const.
15553
15554         * mingw32.h (MAXPATHLEN): Check for previous definition.
15555
15556 2004-10-17  Matthias Klose  <doko@debian.org>
15557
15558         * gnatvsn.ads: Set gnat library version to 4.0.
15559
15560 2004-10-05  Vincent Celier  <celier@gnat.com>
15561
15562         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
15563
15564 2004-10-04  Laurent GUERBY <laurent@guerby.net>
15565
15566         PR ada/15156
15567         * Makefile.in: Define and use RANLIB_FLAGS.
15568
15569 2004-10-04  Pascal Obry  <obry@gnat.com>
15570
15571         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
15572         other x86 platforms).
15573
15574 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
15575
15576         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
15577         in general and triggers stack alignment adjustment for thread entry
15578         points on targets where this is necessary.
15579
15580 2004-10-04  Bernard Banner  <banner@gnat.com>
15581
15582         PR ada/13897
15583         * Makefile.in: Add section for powerpc linux
15584         Add variant i-vxwork-x86.ads
15585
15586         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
15587
15588 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
15589
15590         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
15591         table registration calls when need be. Ensures no reference to the crt
15592         ctors symbol are issued in the SJLJ case, which avoids possible
15593         undefined symbol errors in the case of modules to be statically linked
15594         with the kernel.
15595
15596 2004-10-04  Javier Miranda  <miranda@gnat.com>
15597
15598         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
15599         in-line the code corresponding to subprogram Analyze_Actuals. In
15600         addition, analyze the actuals only in case of subprogram call.
15601
15602 2004-10-04  Ed Falis  <falis@gnat.com>
15603
15604         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
15605
15606 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
15607
15608         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
15609         in the documentation.
15610
15611 2004-10-04  Robert Dewar  <dewar@gnat.com>
15612
15613         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
15614         IF and CASE.
15615         (Analyze_Block_Statement): Add circuitry to detect following dead code
15616         (Check_Unreachable_Code): Handle case of block exit
15617
15618 2004-10-04  Robert Dewar  <dewar@gnat.com>
15619
15620         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
15621         (XMatchD): Avoid warning for Logic_Error call
15622
15623 2004-10-04  Robert Dewar  <dewar@gnat.com>
15624
15625         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
15626         consider expressions buried within a procedure actual to be an actual.
15627         This caused some blowups with uses of packed slices within a procedure
15628         actual.
15629
15630 2004-10-04  Robert Dewar  <dewar@gnat.com>
15631
15632         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
15633         longer need to be initialized to zero.
15634         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
15635         initialized to zero.
15636
15637         * checks.adb (Expr_Known_Valid): Packed arrays are now always
15638         considered valid, even if the representation is modular. That's correct
15639         now that we no longer initialize packed modular arrays to zero.
15640
15641         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
15642         suffixes. These are now documented as the only cases in which the
15643         debugger ignores outer records.
15644         Previously, the spec allowed arbitrary suffixes for this purpose.
15645         Change name of LJM to JM for packed array pad records
15646         Create separate section on packed array handling, and add a whole new
15647         set of comments to this section describing the situation with packed
15648         modular types and justification requirements depending on endianness.
15649
15650 2004-10-04  Robert Dewar  <dewar@gnat.com>
15651
15652         * a-except.adb: Add a comment for last change
15653
15654         * einfo.ads: Minor spelling correction in comment
15655
15656         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
15657
15658         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
15659         messages.
15660
15661         * sem_util.ads: Minor comment update
15662
15663 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
15664
15665         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
15666         Inline_Always when in Configurable_Run_Time mode.
15667
15668         * sem_prag.adb (Process_Convention): If entity is an inherited
15669         subprogram, apply convention to parent subprogram if in same scope.
15670         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
15671         when in Configurable_Run_Time mode.
15672
15673 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
15674
15675         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
15676         class_wide type after component list has been inherited.
15677
15678 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
15679
15680         * sem_ch12.adb (Check_Generic_Actuals): New predicate
15681         Denotes_Previous_Actual, to handle properly the case of a private
15682         actual that is also the component type of a subsequent array actual.
15683         The visibility status of the first actual is not affected when the
15684         second is installed.
15685         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
15686         make fully recursive the treatment of formals of packages declared
15687         with a box.
15688         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
15689         the above on exit from an instantiation.
15690         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
15691         current instantiation which is now complete.
15692         (Analyze_Package_Instantiation): No instantiated body is needed if the
15693         main unit is generic. Efficient, and avoid anomalies when a instance
15694         appears in a package accessed through rtsfind.
15695
15696 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
15697
15698         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
15699         do not generate a declaration for a temporary if the call is part of a
15700         library-level instantiation.
15701
15702 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
15703
15704         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
15705         searching for a limited component to flag.
15706
15707         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
15708         expansion of Input, to account for the fact that the implicit call
15709         generated by the attribute reference must freeze the user-defined
15710         stream subprogram. This is only relevant to 'Input, because it can
15711         appear in an object declaration, prior to the body of the subprogram.
15712
15713         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
15714         expansion can proceed and further errors uncovered.
15715         (Minor clean up): Fix cases of using | instead of \ for continuation
15716         messages.
15717
15718 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15719
15720         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
15721
15722         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
15723         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
15724         Use gcc_assert and gcc_unreachable.
15725
15726         * decl.c (gnat_to_gnu_entity, case object): Check and process a
15727         specified alignment before validating size.
15728         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
15729         stripped-down declaration for the type of the inner field when making
15730         a JM type.
15731
15732         * utils.c (finish_record_type): Do not compute the size in units
15733         incrementally. Instead compute it once for the rep clause case.
15734         Use gcc_assert and gcc_unreachable.
15735
15736 2004-10-04  Vincent Celier  <celier@gnat.com>
15737
15738         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
15739         in file name.
15740         (Is_Valid_Path_Name): Take '/' as a directory separator.
15741
15742 2004-10-04  Vincent Celier  <celier@gnat.com>
15743
15744         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
15745         (Extended_Project) only if Extended_Project is defined, to avoid
15746         assertion error.
15747         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
15748         resolved path.
15749         (Parse_Single_Project): Ditto.
15750
15751         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
15752         Add_To_Project_Path for virtual projects.
15753
15754 2004-10-04  Vincent Celier  <celier@gnat.com>
15755
15756         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
15757         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
15758         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
15759         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
15760         parameter Options_2.
15761
15762         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
15763         Build_Dynamic_Library with an empty Options_2.
15764
15765         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
15766         default anymore.
15767
15768         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
15769         directory separator, if any.
15770         (Gprmake): Do not allow mains on the command line for library projects.
15771         Do not attempt to link when the project is a library project.
15772         (Library_Opts): New table to store Library_Options.
15773         (Build_Library): If Library_Options is specified, pass these options
15774         when building a shared library.
15775
15776 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
15777
15778         * s-tposen.adb (Service_Entry): The object must be always unlocked at
15779         the end of this procedure now that the unlock operation was inserted
15780         by the expander.
15781
15782 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
15783
15784         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
15785         corresponding to the Preallocated_Stacks flags in System.
15786         (Get_Target_Parameters): Including the processing for
15787         Preallocated_Stacks.
15788
15789         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
15790         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
15791         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
15792         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
15793         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
15794         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
15795         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
15796         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
15797         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
15798         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
15799         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
15800         used to signal whether the compiler creates the required stacks and
15801         descriptors for the different tasks (when True) or it is done by the
15802         underlying operating system at run time (when False).
15803         It is initially set to False in all targets.
15804
15805         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
15806         if it is supported by the target.
15807         (Make_Task_Create_Call): Pass the stack address if it has been
15808         previously created. Otherwise pass a Null_Address.
15809
15810         * snames.adb: Add _stack.
15811
15812         * snames.ads: Add Name_uStack. Required to allow the expander to
15813         statically allocated task stacks.
15814
15815         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
15816         Stack_Address argument.
15817         Check that its value is equal to Null_Address because this target does
15818         not support the static stack allocation.
15819
15820 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
15821
15822         * usage.adb: Change "pragma inline" to "pragma Inline" in information
15823         and error messages
15824
15825 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
15826
15827         * exp_dist.adb: Split declaration of asynchronous flag out of
15828         Add_RACW_Read_Attribute.
15829         Minor reformatting for better alignment with PolyORB version.
15830         Store the entity for the asynchronous flag of an RACW, rather than the
15831         expression, in the asynchronous flags table. This will allow this flag
15832         to be used in other subprograms beside Add_RACW_Read_Attribute.
15833
15834 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
15835
15836         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
15837         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
15838         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
15839         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
15840         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
15841         sockets constant MSG_NOSIGNAL (Linux-specific).
15842         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
15843         all Send operations.
15844         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
15845         from trigerring SIGPIPE.
15846         Rename components to avoid clash with Ada 2005 possible reserved
15847         word 'interface'.
15848         (Check_Selector): When the select system call returns with an error
15849         condition, propagate Socket_Error to the caller.
15850
15851 2004-10-01  Jan Hubicka  <jh@suse.cz>
15852
15853         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
15854
15855 2004-09-23  Robert Dewar  <dewar@gnat.com>
15856
15857         PR ada/17540
15858         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
15859         instead do this at freeze time (we won't do it if there is an address
15860         clause).
15861         Change "pragma inline" to "pragma Inline" in information and error
15862         messages.
15863         Minor reformatting.
15864
15865         * freeze.adb (Check_Address_Clause): Remove previous change, not the
15866         right way of doing things after all.
15867         (Freeze_Entity): For object, set Is_Public for imported entities
15868         unless there is an address clause present.
15869
15870 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
15871
15872         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
15873         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
15874         ensures proper handling of types with rep clauses, which might have
15875         their TYPE_SIZE set already.
15876
15877 2004-09-21  Robert Dewar  <dewar@gnat.com>
15878
15879         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
15880         packed array types in both little- and big-endian cases. This change
15881         ensures that we no longer count on the unused bits being initialized
15882         for such types (and in particular ensures that equality testing will
15883         only read the relevant bits).
15884         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
15885         These changes mean that we no longer need to initialize small packed
15886         arrays.
15887         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
15888         optimization to an LJM field as to its parent field.
15889
15890         * ada-tree.h, trans.c, utils.c, utils2.c:
15891         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
15892
15893 2004-09-20  Jan Hubicka  <jh@suse.cz>
15894
15895         * utils.c (gnat_finalize): Remove.
15896         (end_subprog_body): Directly call cgraph_finalize_function;
15897         do not lower the nested functions.
15898
15899 2004-09-20  Robert Dewar  <dewar@gnat.com>
15900
15901         PR ada/17540
15902         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
15903         if an address clause is present, since that means that the Import
15904         should be ignored.
15905
15906 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
15907
15908         * 5tsystem.ads: Removed, no longer used.
15909
15910 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
15911             Zack Weinberg  <zack@codesourcery.com>
15912
15913         * ada-tree.def: Use tree_code_class enumeration constants
15914         instead of code letters.
15915         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
15916         Update for new tree-class enumeration constants.
15917
15918 2004-09-17  Vincent Celier  <celier@gnat.com>
15919
15920         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
15921         capabilities of the general project manager.
15922
15923 2004-09-09  Vincent Celier  <celier@gnat.com>
15924
15925         * a-direct.ads: Add pragma Ada_05
15926         (Directory_Entry_Type): Give default value to component Kind to avoid
15927         not initialized warnings.
15928
15929         * a-direct.adb (Current_Directory): Remove directory separator at the
15930         end.
15931         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
15932         an existing directory.
15933         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
15934         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
15935         Convert the result to File_Size.
15936
15937         * prj.ads: (Project_Error): New exception
15938
15939         * prj-attr.adb: Except in procedure Initialize, Fail comes from
15940         Prj.Com, not from Osint.
15941         (Attrs, Package_Attributes): Tables moved to private part of spec
15942         (Add_Attribute, Add_Unknown_Package): Moved to new child package
15943         Prj.Attr.PM.
15944         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
15945         Prj.Project_Error after call to Fail.
15946         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
15947         Fail. Check that package name is not already in use.
15948
15949         * prj-attr.ads: Comment updates to indicate that all subprograms may be
15950         used by tools, not only by the project manager, and to indicate that
15951         exception Prj.Prj_Error may be raised in case of problem.
15952         (Add_Unknown_Package, Add_Attribute): Moved to new child package
15953         Prj.Attr.PM.
15954         (Attrs, Package_Attributes): Table instantiations moved from the body to
15955         the private part to be accessible from Prj.Attr.PM body.
15956
15957         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
15958         from new package Prj.Attr.PM.
15959         (Parse_Attribute_Declaration): Call Add_Attribute from new package
15960         Prj.Attr.PM.
15961
15962         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
15963
15964         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
15965         instead of Elaboration_Checks).
15966
15967         * a-calend.adb: Minor reformatting
15968
15969 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15970
15971         * gigi.h (maybe_pad_type): New declaration.
15972         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
15973
15974         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
15975
15976         * cuintp.c: Convert to use buildN.
15977
15978         * decl.c (maybe_pad_type): No longer static.
15979         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
15980         target pointer.
15981         Convert to use buildN.
15982
15983         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
15984         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
15985         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
15986         RHS.
15987         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
15988         (gnat_gimplify_expr, case ADDR_EXPR): New case.
15989         Convert to use buildN.
15990
15991         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
15992         TREE_READONLY for const.
15993         Convert to use buildN.
15994
15995         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
15996         (create_var_decl): Refine when TREE_STATIC is set.
15997         Convert to use buildN.
15998
15999 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
16000
16001         * gnat_ugn.texi: Delete text relating to checking of ali and object
16002         consistency.
16003
16004         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
16005         routines.
16006
16007 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
16008
16009         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
16010         pragmas recognized by GNAT.
16011
16012         * gnat_rm.texi: Document pragma Detect_Blocking.
16013
16014         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
16015         raise Program_Error if called from a protected operation.
16016
16017         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
16018         the protected action nesting level.
16019         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
16020         protected action nesting level.
16021         (Unlock): When pragma Detect_Blocking is active decrease the protected
16022         action nesting level.
16023
16024         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
16025         Protected_Action_Nesting.
16026
16027         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
16028         Common_ATCB record. It contains the dynamic level of protected action
16029         nesting for each task. It is needed for checking whether potentially
16030         blocking operations are called from protected operations.
16031         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
16032         Detect_Blocking is active or not in the partition.
16033
16034         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
16035         raise Program_Error if called from a protected operation.
16036         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
16037         Program_Error if called from a protected operation.
16038         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
16039         Program_Error if called from a protected operation.
16040
16041         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
16042         raise Program_Error if called from a protected operation.
16043
16044         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
16045         raise Program_Error if called from a protected operation, and increase
16046         the protected action nesting level.
16047         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
16048         Program_Error if called from a protected operation, and increase the
16049         protected action nesting level.
16050         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
16051         protected action nesting level.
16052
16053         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
16054         raise Program_Error if called from a protected operation, and increase
16055         the protected action nesting level.
16056         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
16057         Program_Error if called from a protected operation, and increase the
16058         protected action nesting level.
16059         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
16060         raise Program_Error if called from a protected operation.
16061         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
16062         active, raise Program_Error if called from a protected operation.
16063         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
16064         protected action nesting level.
16065
16066         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
16067         insertion of the statement raising Program_Error. The run time
16068         contains the required machinery for handling that.
16069
16070         * sem_util.ads: Change comment associated to procedure
16071         Check_Potentially_Blocking_Operation.
16072         This procedure does not insert a call for raising the exception because
16073         that is currently done by the run time.
16074
16075         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
16076
16077         * init.c: Add the global variable __gl_detect_blocking that indicates
16078         whether pragma Detect_Blocking is active (1) or not (0). Needed for
16079         making the pragma available at run time.
16080         (__gnat_set_globals): Pass and update the detect_blocking parameter.
16081
16082         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
16083         pragma Detect_Blocking is active.
16084
16085         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
16086
16087         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
16088         DB is found in the ali file. Any unit compiled with pragma
16089         Detect_Blocking active forces its effect in the whole partition.
16090
16091         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
16092         Detect_Blocking is active and delay is called from a protected
16093         operation.
16094
16095         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
16096         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
16097         Detect_Blocking is active (0 otherwise).
16098         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
16099         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
16100         otherwise).
16101
16102 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
16103
16104         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
16105         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
16106         package.
16107
16108         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
16109         (Register_Receiving_Stub): Add Subp_Info formal parameter.
16110         Update API in placeholder implemetation of s-parint to reflect changes
16111         in distribution runtime library.
16112
16113         * sem_ch3.adb (Expand_Derived_Record): Rename to
16114         Expand_Record_Extension.
16115
16116         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
16117         primitive operations of potentially distributed object types that have
16118         non-controlling anonymous access formals.
16119
16120         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
16121         subprogram.
16122         New implementation of expansion for remote access-to-subprogram types,
16123         based on the RACW infrastructure.
16124         This version of sem_dist is compatible with PolyORB/DSA as well as
16125         GLADE.
16126
16127         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
16128         Asynchrronous that applies to a remote access-to-subprogram type, mark
16129         the underlying RACW type as asynchronous.
16130
16131         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
16132          __gnat_using_gnu_linker to 1.
16133
16134         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
16135         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
16136         GNAT.Perfect_Hash_Generators, and remove the empty
16137         GNAT.Perfect_Hash package.
16138
16139         * atree.adb: Minor reformatting
16140
16141         * exp_ch3.adb (Expand_Derived_Record): Rename to
16142         Expand_Record_Extension.
16143         (Build_Record_Init_Proc.Build_Assignment): The default expression in
16144         a component declaration must remain attached at that point in the
16145         tree so New_Copy_Tree copies it if the enclosing record type is derived.
16146         It is therefore necessary to take a copy of the expression when building
16147         the corresponding assignment statement in the init proc.
16148         As a side effect, in the case of a derived record type, we now see the
16149         original expression, without any rewriting that could have occurred
16150         during expansion of the ancestor type's init proc, and we do not need
16151         to go back to Original_Node.
16152
16153         * exp_ch3.ads (Expand_Derived_Record): Rename to
16154         Expand_Record_Extension.
16155
16156         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
16157         Returns the RACW type used to implement a remote access-to-subprogram
16158         type.
16159         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
16160         New subprograms. Used to create a proxy tagged object for a remote
16161         subprogram. The proxy object is used as the designated object
16162         for RAS values on the same partition (unless All_Calls_Remote applies).
16163         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
16164         System.Partition_Interface.Get_Unique_Remote_Pointer.
16165         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
16166         Renamed from Add_RAS_*_Attribute.
16167         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
16168         subprograms.
16169         New implementation of expansion for remote access-to-subprogram types,
16170         based on the RACW infrastructure.
16171
16172         * exp_dist.ads (Copy_Specification): Update comment to note that this
16173         function can copy the specification from either a subprogram
16174         specification or an access-to-subprogram type definition.
16175
16176 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
16177
16178         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
16179         in an instance, between an explicit subprogram an one inherited from a
16180         type derived from an actual.
16181
16182         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
16183         add a polling call if the subprogram is to be inlined by the back-end,
16184         to avoid repeated calls with multiple inlinings.
16185
16186         * checks.adb (Apply_Alignment_Check): If the expression in the address
16187         clause is a call whose name is not a static entity (e.g. a dispatching
16188         call), treat as dynamic.
16189
16190 2004-09-09  Robert Dewar  <dewar@gnat.com>
16191
16192         * g-trasym.ads: Minor reformatting
16193
16194         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
16195         packed arrays, since unused bits are expected to be zero for a
16196         comparison.
16197
16198 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
16199
16200         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
16201         comment.
16202
16203 2004-09-09  Pascal Obry  <obry@gnat.com>
16204
16205         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
16206         enable map file generation. Add the right option to generate the map
16207         file if Map_File is set to True.
16208
16209         * gnatdll.adb (Gen_Map_File): New variable.
16210         (Syntax): Add info about new -m (Map_File) option.
16211         (Parse_Command_Line): Add support for -m option.
16212         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
16213         Minor reformatting.
16214
16215 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
16216
16217         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
16218         new gnatdist implementation.
16219         Define a subpackage isolating the output routines specific to this
16220         verbose mode.
16221
16222 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
16223
16224         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
16225
16226         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
16227
16228 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
16229
16230         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
16231         internal unit.
16232
16233         * opt.ads: Add Ada_Version_Runtime constant used to decide which
16234         version of the language is used to compile the run time.
16235
16236 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
16237
16238         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
16239         of variable length temporaries for function return now that the
16240         back-end and gigi support it.
16241
16242 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16243
16244         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
16245
16246         * trans.c (struct stmt_group): Delete field GLOBAL.
16247         (gnat_init_stmt_group): Do not initialize it.
16248         (call_to_gnu): Use save_expr, not protect_multiple_eval.
16249         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
16250         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
16251         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
16252         (start_stmt_group): Likewise.
16253         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
16254
16255         * utils2.c (ggc.h): Include.
16256         (build_call_raise): Call build_int_cst, not build_int_2.
16257
16258         * utils.c (gnat_init_decl_processing): Fix arg to
16259         build_common_tree_nodes.
16260         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
16261         (gnat_define_builtin): Set built_in_decls.
16262         (init_gigi_decls): Call build_int_cst, not build_int_2.
16263
16264         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
16265         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
16266         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
16267         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
16268         SET_TYPE_MODULE): Use them.
16269         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
16270         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
16271         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
16272         SET_TYPE_ADA_SIZE): Likewise.
16273         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
16274         (DECL_CONST_CORRESPONDING_VAR,
16275         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
16276         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
16277         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
16278         (TYPE_RM_SIZE_NUM): New macro.
16279         (TYPE_RM_SIZE): Modified to use above.
16280
16281         * cuintp.c: (build_cst_from_int): New function.
16282         (UI_To_gnu): Use it.
16283
16284         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
16285         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
16286         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
16287         MIN_EXPR for the size, copy it into new.
16288
16289 2004-09-01  Robert Dewar  <dewar@gnat.com>
16290
16291         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
16292         packed indexed component where array is an IN OUT formal. This
16293         generated garbage code previously.
16294
16295         * gnat_ugn.texi: Document -fverbose-asm
16296
16297         * gnat-style.texi: Minor updates (note that boolean constants and
16298         variables are joined with AND/OR rather than short circuit forms).
16299
16300 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
16301
16302         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
16303         it is an upward conversion of an untagged type with no representation
16304         change.
16305
16306 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
16307
16308         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
16309         System.Partition_Interface.
16310
16311         * checks.adb (Apply_Access_Checks): Do not generate checks when
16312         expander is not active (but check for unset reference to prefix of
16313         dereference).
16314
16315         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
16316         pragma Debug as an if statement with a constant condition, for
16317         consistent treatment of entity references contained within the
16318         enclosed procedure call.
16319
16320 2004-09-01  Vincent Celier  <celier@gnat.com>
16321
16322         * bindgen.adb: (Set_EA_Last): New procedure
16323         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
16324         Set_EA_Last.
16325         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
16326         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
16327         linked without errors.
16328         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
16329         ST and EA.
16330         (Gen_Exception_Table_C): Correct same bugs
16331
16332         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
16333
16334         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
16335         on Windows, make sure that the drive letter is in upper case.
16336
16337         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
16338         Windows, when the drive letter is added and Case_Sensitive is True, the
16339         drive letter is forced to upper case.
16340
16341         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
16342         to Options_2 for the call to MLib.Utl.Gcc.
16343
16344         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
16345         directory separator when defining BASE_DIR.
16346
16347 2004-09-01  Pascal Obry  <obry@gnat.com>
16348
16349         * gprcmd.adb (Extend): Do not output trailing directory separator. This
16350         is not needed and it confuses Windows GNU/make which does not report
16351         directory terminated by a slash as a directory.
16352         (gprcmd): Idem for "pwd" internal command.
16353
16354         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
16355         target names rewrite to fix regressions with recent version of
16356         GNU/make. Starting with GNU/make 3.80 the pipe character was not
16357         handled properly anymore.
16358
16359 2004-09-01  Andreas Schwab  <schwab@suse.de>
16360
16361         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
16362         * raise.c [!IN_RTS]: Undef abort.
16363
16364 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
16365
16366         * utils2.c (build_allocator): Use ssize_int.
16367
16368         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
16369
16370 2004-08-27  Andreas Schwab  <schwab@suse.de>
16371
16372         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
16373
16374 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
16375             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16376
16377         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
16378
16379 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
16380
16381         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
16382         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
16383         * utils.c (init_gigi_decls): Likewise.
16384         * utils2.c (build_call_raise, build_allocator): Likewise.
16385
16386 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
16387
16388         * utils.c (gnat_init_decl_processing): Adjust
16389         build_common_tree_nodes call.
16390
16391 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
16392
16393         * utils2.c (build_allocator): Use build_int_cst for negative
16394         size types.
16395
16396 2004-08-18  Richard Henderson  <rth@redhat.com>
16397
16398         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
16399
16400 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
16401
16402         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
16403         call.s
16404         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
16405         (gnat_to_gnu): Likewise.
16406
16407 2004-08-16  Pascal Obry  <obry@gnat.com>
16408
16409         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
16410         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
16411         option and not mdll anymore. Update comment.
16412
16413 2004-08-16  Pascal Obry  <obry@gnat.com>
16414
16415         * bld.adb (Put_Include_Project): Properly handle directory separators
16416         on Windows.
16417
16418 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
16419
16420         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
16421         decreasing the number of allocated junk nodes while searching for the
16422         appropriate subprogram.
16423
16424 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
16425
16426         * cuintp.c (UI_To_gnu): Use build_int_cst..
16427         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
16428         * utils.c (init_gigi_decls): Likewise.
16429         * utils2.c (build_call_raise): Likewise.
16430
16431 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
16432
16433         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
16434         for a global aliased object with a variable size and an unconstrained
16435         nominal subtype, pretend there is no initializer if the one we have is
16436         incomplete, and avoid referencing an inexistant component in there. The
16437         part we have will be rebuilt anyway and the reference may confuse
16438         further operations.
16439
16440 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
16441
16442         * einfo.ads: Minor reformatting
16443
16444         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
16445         restrictions in the ALI if we only want to warn about violations.
16446
16447 2004-08-13  Vincent Celier  <celier@gnat.com>
16448
16449         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
16450         when creating a new Unit_Record in table Units.
16451
16452         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
16453         that are violated, if any.
16454
16455         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
16456         add directory separator if path already ends with a directory separator.
16457
16458 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
16459
16460         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
16461         unit, this is an attempt to inline a construct that is not available in
16462         the current restricted mode, so abort rather than trying to continue.
16463
16464         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
16465         discriminants that rename those of the parent, recover names of
16466         original discriminants for the constraint on the full view of the
16467         parent.
16468         (Complete_Private_Subtype): Do not create a subtype declaration if the
16469         subtype is an itype.
16470
16471         * gnat_rm.texi: Added section on implementation of discriminated
16472         records with default values for discriminants.
16473
16474 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
16475
16476         PR ada/15601
16477         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
16478         the second operand is overloaded.
16479
16480 2004-08-10  Richard Henderson  <rth@redhat.com>
16481
16482         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
16483         add __builtin_alloca.
16484
16485 2004-08-10  Richard Henderson  <rth@redhat.com>
16486
16487         * config-lang.in (boot_language): Yes.
16488
16489 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
16490
16491         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
16492         from complaining on potential uninitialized reference.
16493         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
16494         new specification and test explicitly for non-zero return value.
16495
16496         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
16497         returning C.int, to avoid using a derived boolean type.
16498
16499         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
16500         Duplicate_Subexpr_No_Checks in preference to direct use of
16501         Remove_Side_Effects and New_Copy_Tree.
16502         Clear Comes_From_Source on prefix of 'Size attribute reference.
16503
16504         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
16505         g-socthi-vxworks.adb: Change calls to
16506         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
16507         and test explicitly for non-zero return value.
16508
16509         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
16510         (Is_Socket_In_Set): Declare imported function as returning C.int, to
16511         avoid using a derived boolean type.
16512
16513 2004-08-09  Albert Lee  <lee@gnat.com>
16514
16515         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
16516
16517 2004-08-09  Pascal Obry  <obry@gnat.com>
16518
16519         * gnat_ugn.texi: Document new way to build DLLs on Windows using
16520         GCC's -shared option.
16521
16522         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
16523         Options_2 parameter (options put after object files).
16524
16525 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
16526
16527         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
16528         ignore overflows on low and high bounds of an index to also account for
16529         differences in signedness between sizetype and gnu_index_subtype.
16530         These are as legitimate as the ones caused by a lower TYPE_PRECISION
16531         on sizetype.
16532
16533 2004-08-09  Robert Dewar  <dewar@gnat.com>
16534
16535         * s-solita.ads, s-solita.adb: Minor reformatting
16536
16537         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
16538         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
16539         obsolescent section
16540         Add note that No_Implicit_Conditionals does not suppress
16541         run time constraint checks.
16542
16543         * vms_conv.ads: Minor reformatting
16544
16545         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
16546         and necessary for following change).
16547         (Mark): Return new format Mark_Id containing sec stack address
16548         (Release): Use sec stack address from Mark_Id avoiding Self call
16549
16550         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
16551         pointer (cleanup and necessary for following change).
16552         Define Mark_Id as record containing address of secondary stack, that way
16553         Release does not need to find the stack again, decreasing the number of
16554         calls to Self and improving efficiency.
16555
16556         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
16557
16558         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
16559         case variable into the individual case branches when possible.
16560
16561         * sem_ch11.adb: Minor reformatting
16562
16563         * prj.ads: Correct spelling of suffixs
16564
16565         * prj-nmsc.adb: Minor reformatting
16566         Correct spelling suffixs throughout (also in identifiers)
16567
16568         * freeze.adb: Minor spelling correction
16569
16570         * exp_ch2.adb: Cleanups to handling of Current_Value
16571         (no functional effect).
16572
16573         * bld.adb: Correct spelling of suffixs
16574
16575         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
16576
16577 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
16578
16579         PR ada/15408
16580         * sem_ch7.adb (Install_Private_Declarations): In the body of the
16581         package or of a child, private entities are both immediately_visible
16582         and not hidden.
16583
16584 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
16585
16586         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
16587         there are no range checks on the value of the literal.
16588
16589         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
16590         wrapped is the triggering alternative of an asynchronous select, action
16591         statements mustbe inserted before the select itself.
16592
16593         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
16594         case where the prefix is a protected function call.
16595         (Resolve_Attribute, case 'Access): The attribute reference on a
16596         subprogram is legal in a generic body if the subprogram is declared
16597         elsewhere.
16598
16599 2004-08-09  Vincent Celier  <celier@gnat.com>
16600
16601         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
16602         languages, otherwise building the library may fail with unresolved
16603         symbols.
16604         (Compile_Sources): Do not build libraries if -c switch is used
16605
16606         * gnatlink.adb (Process_Args): New switches -M and -Mmap
16607         (Write_Usage): If map file creation is supported, output new switches
16608         -M and -Mmap.
16609         (Gnatlink): When -M is specified, add the necessary switch(es) to the
16610         gcc call, when supported.
16611
16612         * Makefile.in: Added indepsw.o to the object list for gnatlink
16613         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
16614
16615         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
16616         indepsw.adb, indepsw.ads: New files.
16617
16618 2004-08-09  Bernard Banner  <banner@gnat.com>
16619
16620         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
16621
16622         * Makefile.in: add section for vxworks x86
16623
16624 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
16625
16626         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
16627         per-object constrained components where the discriminant is of an
16628         Access type.
16629         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
16630         the parent initialization procedure for derived Unchecked_Unions.
16631         Instead, derived Unchecked_Unions build their own initialization
16632         procedure.
16633         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
16634         Check the body of the subprogram for details.
16635         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
16636         functions for derived Unchecked_Union types by introducing a condition.
16637         Allow the creation of TSS equality functions for Unchecked_Unions.
16638         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
16639         Add formal parameter Discr to function signature. Discr is used to
16640         control the generated case statement for Unchecked_Union types.
16641         (Make_Eq_If): Rename formal parameter Node to E in function signature.
16642
16643         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
16644         Unchecked_Unions.
16645         Check the body of the subprogram for details.
16646         (Expand_Composite_Equality): Augment composite type equality to include
16647         correct handling of Unchecked_Union components.
16648         (Expand_N_In): Add condition to detect illegal membership tests when the
16649         subtype mark is a constrained Unchecked_Union and the expression lacks
16650         inferable discriminants, and build a Raise_Program_Error node.
16651         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
16652         to detect types that contain components of unconstrained Unchecked_Union
16653         subtype. Add condition to detect equality between types that have an
16654         unconstrained Unchecked_Union component, and build a Raise_Program_Error
16655         node. Add condition to detect equality between Unchecked_Union types
16656         that lack inferable discriminants, and build a Raise_Program_Error node.
16657         Otherwise build a TSS equality function call.
16658         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
16659         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
16660         with the operand lacking inferable discriminants, and build a Raise_
16661         Program_Error node.
16662         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
16663         composite equality.
16664         (Has_Inferable_Discriminants): Implement new predicate for objects and
16665         expressions of Unchecked_Union type. Check the body of subprogram for
16666         details.
16667         (Has_Unconstrained_UU_Components): Add function
16668         Component_Is_Unconstrained_UU. It is used to detect whether a single
16669         component is of an unconstrained Unchecked_Union subtype. Add function
16670         Variant_Is_Unconstrained_UU. It is used to detect whether a single
16671         component inside a variant is of an unconstrained Unchecked_Union type.
16672
16673         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
16674         inferred discriminant values. Add condition to generate a case
16675         statement with an inferred discriminant as the switch.
16676         (Make_Component_List_Assign): Introduce a Boolean flag that determines
16677         the behaviour of the subprogram in the presence of an Unchecked_Union.
16678         Add condition to trigger the usage of the inferred discriminant value
16679         as the generated case statement switch.
16680         (Make_Field_Assign): Introduce a Boolean flag that determines the
16681         behaviour of the subprogram in the presence of an Unchecked_Union. Add
16682         condition to trigger the usage of the inferred discriminant value as
16683         the right-hand side of the generated assignment.
16684
16685         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
16686         parameter generation when dealing with Unchecked_Unions.
16687
16688         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
16689         checks for Unchecked_Unions.
16690
16691         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
16692
16693         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
16694         Raise_Program_Error nodes for the execution of Read and Write
16695         attributes of Unchecked_Union types and the execution of Input and
16696         Output attributes of Unchecked_Union types that lack default
16697         discriminant values.
16698
16699         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
16700         Unchecked_Union. Add procedure Check_Component. It is used to inspect
16701         per-object constrained components of Unchecked_Unions for being
16702         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
16703         check individual components withing a variant.
16704
16705         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
16706         comparison of Unchecked_Unions.
16707         (Resolve_Equality_OP): Remove guard that prevents equality between
16708         Unchecked_Unions.
16709
16710         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
16711         of component subtypes for Unchecked_Union components.
16712         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
16713         since it is the actual subtype.
16714
16715         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
16716         pass of Unchecked_Union subtypes as generic actuals to formal types
16717         that lack known_discriminant_parts or that are derived Unchecked_Union
16718         types, and do nothing. In any other case, produce an error message.
16719
16720         * sem_ch3.adb (Analyze_Component_Declaration): Add function
16721         Contains_POC. It determines whether a constraint uses the discriminant
16722         of an enclosing record type.
16723         Add condition to detect per-object constrained component and set the
16724         appropriate flag.
16725         (Derived_Type_Declaration): Remove guard that prevents derivation from
16726         Unchecked_Union types.
16727         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
16728         Union subtypes.
16729
16730         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
16731         references to Unchecked_Union discriminants.
16732
16733         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
16734         formal generation when dealing with Unchecked_Unions.
16735         (Set_Actual_Subtypes): Add condition to prevent generation of actual
16736         subtypes for Unchecked_Unions.
16737
16738         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
16739         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
16740         completions of discriminated partial views by Unchecked_Unions and
16741         produce an error message.
16742
16743 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16744
16745         * trans.c (struct stmt_group): New field, GLOBAL.
16746         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
16747         (struct elab_info): New struct.
16748         (elab_info_list, gnu_elab_proc_stack): New variables.
16749         (Compilation_Unit_to_gnu): New procedure.
16750         (gigi): Call it and also handle elaboration procs we've saved.
16751         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
16752         global field from parent.
16753         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
16754         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
16755         (start_stmt_group): Initialize global field from parent.
16756         (add_decl_expr): Set to global for current statement group.
16757         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
16758         post.
16759
16760         * utils.c (global_bindings_p): True when no current_function_decl; no
16761         longer check current_binding_level.
16762
16763 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
16764
16765         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
16766         choice.
16767
16768         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
16769
16770 2004-08-06  Andreas Schwab  <schwab@suse.de>
16771
16772         * utils.c (gnat_define_builtin): Remove second parameter of
16773         make_decl_rtl.
16774         (begin_subprog_body): Likewise.
16775
16776 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
16777
16778         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
16779         optimization, not supported by the tree-ssa back-end.
16780
16781 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
16782
16783         * s-mastop-irix.adb: Update comments.
16784
16785         * a-except.adb (Exception_Information): Raise Constraint_Error if
16786         exception Id is Null_Id.
16787         This is required behavior, which is more reliably and clearly checked
16788         at the top level interface level.
16789
16790 2004-07-26  Javier Miranda  <miranda@gnat.com>
16791
16792         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
16793         call if a component has no default_expression and the box is used.
16794
16795         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
16796         default_expression and you use box, it behaves as if you had declared a
16797         stand-alone object.
16798         (Resolve_Record_Aggregate): If a component has no default_expression and
16799         you use box, it behaves as if you had declared a stand-alone object.
16800
16801         * sem_ch10.adb (Install_Siblings): Do not make visible the private
16802         entities of private-with siblings.
16803
16804 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
16805
16806         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
16807         for a component of an itype, set the parent pointer for analysis,
16808         there is no list in which to insert it.
16809
16810         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
16811         bona-fide renamings, not for inherited operations.
16812
16813         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
16814         actual for a formal that is an access parameter, create local
16815         finalization list even if the expression is not an aggregate.
16816
16817 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
16818
16819         PR ada/16213
16820         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
16821         Diagnose properly illegal subprogram renamings that are library units.
16822
16823 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
16824
16825         PR ada/15588
16826         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
16827         conversion rewritten as an unchecked conversion, check that original
16828         expression is a variable.
16829
16830         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
16831         unchecked_conversion, create new node rather than rewriting in place,
16832         to preserve original construct.
16833
16834 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16835
16836         * gigi.h (gnat_expand_body): Deleted.
16837
16838         * Make-lang.in: (trans.o): Depends on function.h.
16839
16840         * misc.c: (gnat_expand_body): Moved to here.
16841
16842         * trans.c (gnat_expand_body_1): Deleted.
16843         (gnat_expand_body): Moved from here.
16844         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
16845         (add_stmt): Check for marked visited with global_bindings_p.
16846         (gnat_gimplify_expr, case COMPONENT_REF): New case.
16847         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
16848
16849         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
16850         VIEW_CONVERT_EXPR if not operation type.
16851
16852         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
16853         fat pointer.
16854
16855         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
16856         changes: reformatting of negation operators, removing unneeded
16857         inequality comparison with zero, converting equality comparisons with
16858         zero to negations, changing int/0/1 to bool/false/true, replace calls
16859         to gigi_abort with abort, and various other similar changes.
16860
16861 2004-07-26  Vincent Celier  <celier@gnat.com>
16862
16863         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
16864         "setup".
16865
16866         * make.adb (Gnatmake): Fail when a library is not present and there is
16867         no object directory.
16868
16869         * mlib-prj.adb (Check_Library): No need to check if the library needs
16870         to be rebuilt if there is no object directory, hence no object files
16871         to build the library.
16872
16873         * opt.ads (Setup_Projects): New Boolean flag.
16874
16875         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
16876         Location.
16877         Create directory when Kind /= "" and in "gnat setup". Report error if
16878         directory cannot be created.
16879         (Ada_Check): Create library interface copy dir if it does not exist
16880         and we are in "gnat setup".
16881         (Find_Sources): No error if in "gnat setup" and no Ada sources were
16882         found.
16883         (Language_Independent_Check): Create object directory, exec directory
16884         and/or library directory if they do not exist and we are in
16885         "gnat setup".
16886
16887         * vms_conv.ads: (Command_Type): New command Setup.
16888
16889         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
16890
16891         * vms_data.ads: Add qualifiers/switches for new built-in command
16892         "setup".
16893
16894 2004-07-25  Richard Henderson  <rth@redhat.com>
16895
16896         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
16897         DECL_IGNORED_P on RESULT_DECL.
16898
16899 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
16900
16901         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
16902         allocation and potentially overflowing update with
16903         Tailored_Exception_Information. Use the sec-stack free procedural
16904         interface to output Exception_Information instead.
16905
16906         * a-except.adb (To_Stderr): New subprogram for character, and string
16907         version moved from a-exextr to be visible from other separate units.
16908         (Tailored_Exception_Information): Remove the procedural version,
16909         previously used by the default Last_Chance_Handler and not any more.
16910         Adjust various comments.
16911
16912         * a-exexda.adb: Generalize the exception information procedural
16913         interface, to minimize the use of secondary stack and the need for
16914         local buffers when the info is to be output to stderr:
16915         (Address_Image): Removed.
16916         (Append_Info_Character): New subprogram, checking for overflows and
16917         outputing to stderr if buffer to fill is of length 0.
16918         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
16919         (Append_Info_Address, Append_Info_Exception_Name,
16920         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
16921         Append_Info_Basic_Exception_Traceback,
16922         Append_Info_Exception_Information): New subprograms.
16923         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
16924         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
16925         Exception_Info_Maxlength, Exception_Name_Length,
16926         Exception_Message_Length): New subprograms.
16927         (Exception_Information): Use Append_Info_Exception_Information.
16928         (Tailored_Exception_Information): Use
16929         Append_Info_Basic_Exception_Information.
16930         Export services for the default Last_Chance_Handler.
16931
16932         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
16933         other separate units.
16934
16935 2004-07-20  Vincent Celier  <celier@gnat.com>
16936
16937         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
16938
16939 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
16940
16941         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
16942         emit itype references for the designated types of component types that
16943         are declared outside of the full record declaration, and that may
16944         denote a partial view of that record type.
16945
16946 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
16947
16948         PR ada/15607
16949         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
16950         which is the designated type in an access component declaration, to the
16951         list of incomplete dependents of the parent type, to avoid elaboration
16952         issues with out-of-scope subtypes.
16953         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
16954         full view of the parent.
16955
16956 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
16957
16958         PR ada/15610
16959         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
16960         entities that are hidden, such as references to generic actuals
16961         outside an instance.
16962
16963 2004-07-20  Javier Miranda  <miranda@gnat.com>
16964
16965         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
16966         support to the new notation.
16967         (Analyze_Selected_Component): Add call to Try_Object_Operation.
16968
16969 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
16970
16971         * s-taprob.adb: Adding the elaboration code required for initializing
16972         the tasking soft links that are common to the full and the restricted
16973         run times.
16974
16975         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
16976         restricted run time has been moved to the package
16977         System.Soft_Links.Tasking.
16978
16979         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
16980         restricted run time has been moved to the package
16981         System.Soft_Links.Tasking.
16982
16983         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
16984
16985         * s-solita.ads, s-solita.adb: New files.
16986
16987 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16988
16989         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
16990         Case_Statement_to_gnu): Split off from gnat_to_gnu.
16991         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
16992         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
16993         Exception_Handler_to_gnu_zcx): Likewise.
16994
16995 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
16996
16997         * gigi.h (builtin_function): Declare.
16998
16999 2004-07-15  Robert Dewar  <dewar@gnat.com>
17000
17001         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
17002         reformatting
17003
17004         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
17005         access values as an example of a warning.
17006
17007         * gnat_rm.texi: Document new attribute Has_Access_Values
17008
17009         * gnat-style.texi: Document that box comments belong on nested
17010         subprograms
17011
17012         * sem_util.ads (Has_Access_Values): Improved documentation
17013
17014         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
17015
17016         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
17017         (Process_Interface_Name): Call to this new procedure
17018         (Set_Extended_Import_Export_External_Name): Call to this new procedure
17019
17020         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
17021
17022         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
17023
17024         * einfo.ads: Minor comment typo fixed
17025
17026 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
17027
17028         * snames.adb: Add _atcb.
17029
17030         * snames.ads: Add Name_uATCB.
17031
17032         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
17033         (in the expanded code) when using the restricted run time.
17034
17035         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
17036         a in parameter in order to allow ATCBs to be preallocated (in the
17037         expanded code).
17038
17039         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
17040         order to allow ATCBs to be preallocated. In case of error, the ATCB is
17041         deallocated in System.Tasking.Stages.
17042
17043         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
17044         order to allow ATCBs to be preallocated.
17045
17046         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
17047         here. It was previously done in Initialize_ATCB.
17048
17049         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
17050
17051         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
17052         Restricted run time.
17053
17054         * exp_ch3.adb: When using the Restricted run time, pass the
17055         preallocated Ada_Task_Control_Block when creating a task.
17056
17057 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
17058
17059         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
17060         function call that is itself an actual in an enclosing call, diagnose
17061         problem here rather than assuming that resolution will catch it.
17062
17063         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
17064         the local copy of a generic unit for a formal package, and the generic
17065         is a child unit, install private part of ancestors before compiling
17066         private part of spec.
17067
17068         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
17069         use scope entities rather than tree structures, to handle properly
17070         parent units that are instances rewritten as bodies for inlining
17071         purposes.
17072
17073         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
17074         Remove_Parents): Handle properly a parent unit that is an
17075         instantiation, when the unit has been rewritten as a body for inlining
17076         purposes.
17077
17078         * par.adb (Goto_List): Global variable to collect goto statements in a
17079         given unit, for use in detecting natural loops.
17080
17081         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
17082         use in detecting natural loops.
17083
17084         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
17085         backwards goto's, and rewrite as a infinite loop, to improve locality
17086         of temporaries.
17087
17088         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
17089         subcomponent that includes an indexed reference, to prevent the
17090         generation of copies that would miscompile the desired assignment
17091         statement.
17092         (Build_Task_Image_Decls): Add a numeric suffix to
17093         generated name for string variable, to avoid spurious conflicts with
17094         the name of the type of a single protected object.
17095
17096         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
17097         loop with an explicit exit statement, to avoid generating an
17098         out-of-range value with 'Succ leading to spurious constraint_errors
17099         when compiling with -gnatVo.
17100
17101 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
17102
17103         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
17104         might not be analyzed yet, even if its Etype is already set (case of an
17105         unchecked conversion built using Unchecked_Convert_To, for example).
17106         If the prefix has already been analyzed, this will be a nop anyway.
17107
17108         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
17109         controller type, or an assignment of a record type with controlled
17110         components, copy only user data, and leave the finalization chain
17111         pointers untouched.
17112
17113 2004-07-15  Vincent Celier  <celier@gnat.com>
17114
17115         * make.adb (Collect_Arguments): Improve error message when attempting
17116         to compile a source not part of any project, when -x is not used.
17117
17118         * prj.ads: (Defined_Variable_Kind): New subtype
17119
17120         * prj-attr.adb (Register_New_Package): Two new procedures to register
17121         a package with or without its attributes.
17122         (Register_New_Attribute): Mew procedure to register a new attribute in a
17123         package.
17124         New attribute oriented subprograms: Attribute_Node_Id_Of,
17125         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
17126         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
17127         Next_Attribute.
17128         New package oriented subprograms: Package_Node_Id_Of,
17129         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
17130
17131         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
17132         type.
17133         (Package_Node_Id): Now a private, self initialized type
17134         (Register_New_Package): New procedure to register a package with its
17135         attributes.
17136         New attribute oriented subprograms: Attribute_Node_Id_Of,
17137         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
17138         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
17139         Next_Attribute.
17140         New package oriented subprograms: Package_Node_Id_Of,
17141         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
17142
17143         * prj-dect.adb (Parse_Attribute_Declaration,
17144         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
17145
17146         * prj-makr.adb (Make): Parse existing project file before creating
17147         other files. Fail if there was an error during parsing.
17148
17149         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
17150         new spec of Prj.Attr.
17151
17152         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
17153         to new spec of Prj.Attr.
17154
17155 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17156
17157         * utils2.c: Fix typo in comment.
17158
17159 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17160
17161         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
17162         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
17163
17164 2004-07-14  Andreas Schwab  <schwab@suse.de>
17165
17166         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
17167
17168 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17169
17170         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
17171         object type.
17172         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
17173         TYPE_STUB_DECL.
17174
17175         * misc.c (gnat_types_compatible_p): New function.
17176         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
17177         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
17178
17179         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
17180         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
17181         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
17182         (mark_visited): Don't mark dummy type.
17183         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
17184         parameter, we must remove any LJM building from GNU_NAME.
17185         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
17186         (pos_to_constructor): Use int_const_binop.
17187         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
17188         PARM_DECL.
17189
17190         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
17191         (gnat_pushlevel): Set TREE_USE on BLOCK node.
17192         (gnat_install_builtins): Add __builtin_memset.
17193
17194 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
17195
17196         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
17197         for a renaming, stabilize the initialization expression if we are at a
17198         local level.  At the local level, uses of the renaming may be performed
17199         by a direct dereference of the initializing expression, and we don't
17200         want possible variables there to be evaluated for every use.
17201
17202         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
17203         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
17204         them on the way.  Account for the fact that we may introduce side
17205         effects in the process.
17206
17207 2004-07-13  Richard Henderson  <rth@redhat.com>
17208
17209         * misc.c (default_pass_by_ref): Use pass_by_reference.
17210
17211 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
17212
17213         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
17214         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
17215
17216 2004-07-08  Richard Henderson  <rth@redhat.com>
17217
17218         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
17219         commentary.
17220
17221 2004-07-06  Vincent Celier  <celier@gnat.com>
17222
17223         * vms_conv.ads: Minor reformatting.
17224         Alphabetical order for enumerated values of type Command_Type, to have
17225         the command in alphabetical order for the usage.
17226
17227         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
17228         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
17229
17230         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
17231
17232         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
17233         (Add_Archive_Path): Only add the global archive if there is one.
17234         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
17235         or not any object file to put in the global archive, and don't build
17236         a global archive if there is none.
17237         (X_Switches): New table
17238         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
17239         in the X_Switches table, if any.
17240         (Initialize): Make sure the X_Switches table is empty
17241         (Scan_Arg): Record -X switches in table X_Switches
17242
17243         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
17244
17245         * make.adb: Minor comment fix
17246
17247         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
17248         invoked with directory information, add the directory in front of the
17249         path.
17250
17251         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
17252         invoked with directory information, add the directory in front of the
17253         path.
17254
17255         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
17256         when Keep_Temporary_Files is False.
17257         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
17258         directory information, add the directory in front of the path.
17259         When not on VMS, handle new switch -dn before the command to set
17260         Keep_Temporary_Files to True.
17261         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
17262         everywhere.
17263
17264         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
17265         invoked with directory information, add the directory in front of the
17266         path.
17267
17268 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
17269
17270         * snames.ads, snames.adb (Name_Stub): New name for the distributed
17271         systems annex.
17272
17273         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
17274         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
17275
17276         * g-socket.adb (To_Timeval): Fix incorrect conversion of
17277         Selector_Duration to Timeval for the case of 0.0.
17278
17279         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
17280         documentation from Evolve_And_Then.
17281
17282 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
17283
17284         * s-taprop-tru64.adb, s-taprop-os2.adb,
17285         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
17286
17287 2004-07-06  Robert Dewar  <dewar@gnat.com>
17288
17289         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
17290         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
17291         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
17292         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
17293         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
17294         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
17295         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
17296         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
17297         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
17298         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
17299         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
17300         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
17301         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
17302         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
17303         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
17304         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
17305         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
17306         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
17307         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
17308         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
17309         vms_data.ads: Minor reformatting,
17310         Fix bad box comment format.
17311
17312         * gnat_rm.texi: Fix minor grammatical error
17313
17314         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
17315
17316         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
17317         more cases of discriminated records to be recognized as not needing a
17318         secondary stack.
17319         (Has_Access_Values): New function.
17320
17321         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
17322
17323         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
17324         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
17325         with LRM terminology).
17326         Change terminology in comments primitive type => elementary type.
17327
17328 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
17329
17330         PR ada/15602
17331         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
17332         parameters do not impose any requirements on the presence of a body.
17333
17334 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
17335
17336         PR ada/15593
17337         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
17338         compilation unit and is in an open scope at the point of instantiation,
17339         assume that a body may be present later.
17340
17341 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
17342
17343         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
17344         Improve error message when specified size is not supported.
17345
17346         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
17347         is never a primitive operation.
17348
17349 2004-07-05  Andreas Schwab  <schwab@suse.de>
17350
17351         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
17352         RECORD_OR_UNION_CHECK.
17353         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
17354
17355 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
17356
17357         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
17358         dependency on xgnatugn, instead build it via a submake.
17359         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
17360
17361 2004-07-04  Richard Henderson  <rth@redhat.com>
17362
17363         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
17364
17365 2004-07-01  Richard Henderson  <rth@redhat.com>
17366
17367         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
17368         * utils.c (max_size): Likewise.
17369
17370 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17371
17372         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
17373         and rest_of_type_compilation; add arg to create_*_decl.
17374         (annotate_decl_with_node): Deleted.
17375         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
17376         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
17377         (get_current_block_context, gnat_pushdecl): New declarations.
17378         (gnat_init_stmt_group): Likewise.
17379         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
17380         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
17381         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
17382         (gnat_init): Call gnat_init_stmt_group.
17383         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
17384         (gnu_pending_elaboration_list): Deleted.
17385         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
17386         (gigi): Rearrange initialization calls and move some to last above.
17387         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
17388         Delete calls to add_decl_expr; add arg to create_*_decl.
17389         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
17390         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
17391         begin_subprog_body and call it.
17392         Don't push and pop ggc context.
17393         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
17394         (add_stmt): Remove handling of DECL_EXPR from here.
17395         If not in function, mark visited.
17396         (add_decl_expr): Put global at top level.
17397         Check for cases of DECL_INITIAL we have to handle here.
17398         (process_type): Add extra arg to create_type_decl.
17399         (build_unit_elab): Rework to just gimplify.
17400         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
17401         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
17402         (get_pending_elaborations, pending_elaborations_p): Likewise.
17403         (push_pending_elaborations, pop_pending_elaborations): Likewise.
17404         (get_elaboration_location, insert_elaboration_list): Likewise.
17405         (gnat_binding_level): Renamed from ada_binding_level.
17406         (init_gnat_to_gnu): Don't clear pending_elaborations.
17407         (global_bindings_p): Treat as global if no current_binding_level.
17408         (set_current_block_context): New function.
17409         (gnat_pushdecl): Renamed from pushdecl; major rework.
17410         All callers changed.
17411         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
17412         (finish_record_type): Call call pushdecl for stub decl.
17413         (function_nesting_depth): Deleted.
17414         (begin_subprog_body): Delete obsolete code.
17415         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
17416
17417 2004-06-28  Robert Dewar  <dewar@gnat.com>
17418
17419         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
17420         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
17421         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
17422         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
17423         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
17424
17425         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
17426         deal with problem of inefficient slices on machines with strict
17427         alignment, when the slice is a component of a composite.
17428
17429         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
17430         machines, we need the check there as well.
17431
17432 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
17433
17434         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
17435         determine safe copying direction for overlapping slice assignments
17436         when component is controlled.
17437
17438         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
17439         formal derived type in the actual for a formal package are visible in
17440         the enclosing instance.
17441
17442 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
17443
17444         PR ada/15600
17445         * sem_util.adb (Trace_Components): Diagnose properly an illegal
17446         circularity involving a private type whose completion includes a
17447         self-referential component.
17448         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
17449         renaming or an instantiation from an implicit derived operation.
17450
17451 2004-06-28  Pascal Obry  <obry@gnat.com>
17452
17453         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
17454         DLL.
17455         (Library_File_Name_For): Idem.
17456
17457 2004-06-28  Matthew Gingell  <gingell@gnat.com>
17458
17459         * g-traceb.ads: Add explanatory note on the format of addresses
17460         expected by addr2line.
17461
17462 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
17463
17464         * Makefile.in: Force debugging information on s-tasdeb.adb,
17465         a-except.adb and s-assert.adb needed by the debugger.
17466
17467 2004-06-28  Vincent Celier  <celier@gnat.com>
17468
17469         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
17470         Need_To_Build_Lib.
17471         (Gnatmake): Ditto.
17472
17473         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
17474
17475         * prj.adb: Minor reformatting
17476         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
17477
17478         * prj.ads: Comment updates
17479         Minor reformatting
17480         (Project_Data): Change Flag1 to Need_To_Build_Lib.
17481         Remove Flag2: not used.
17482
17483         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
17484         declaration.
17485
17486         * gnat_ugn.texi: Put a "null;" declaration in one project file example
17487
17488         * gnat_rm.texi: Document Empty declarations "null;".
17489
17490         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
17491         front of the linker options.
17492         (Link_Foreign): Put the global archives and the libraries in front of
17493         the linker options.
17494
17495 2004-06-28  Javier Miranda  <miranda@gnat.com>
17496
17497         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
17498         (RTU_Loaded): Code cleanup
17499         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
17500         withed predefined units.
17501
17502         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
17503         explicitly withed predefined units.
17504         Fix typo in comment
17505
17506         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
17507         explicitly withed predefined units.
17508
17509 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17510
17511         * ada-tree.def (DECL_STMT): Deleted.
17512         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
17513         (DECL_STMT_VAR): Deleted.
17514         * decl.c: add_decl_stmt now add_decl_expr.
17515         * gigi.h: Likewise.
17516         * trans.c: Likewise.
17517         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
17518         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
17519         (add_stmt): Only handle padded type here.
17520         (add_stmt_with_node): Allow gnat_node to not be present.
17521         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
17522         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
17523         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
17524         make a SAVE_EXPR for the entire fat pointer.
17525         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
17526         (create_index_type): Make a DECL_EXPR.
17527         (end_subprog_body): Don't call allocate_struct_function here but
17528         do clear cfun.
17529
17530 2004-06-25  Pascal Obry  <obry@gnat.com>
17531
17532         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
17533         Relocatable from Build_Dynamic_Library call.
17534
17535         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
17536         Relocatable are now synonym.
17537
17538         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
17539
17540         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
17541         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
17542         call.
17543
17544         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
17545         Lib_Address and Relocatable.
17546         (Default_DLL_Address): Removed.
17547
17548         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
17549         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
17550         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
17551         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
17552         (Default_DLL_Address): Removed.
17553
17554         * mlib-tgt-mingw.adb: Ditto.
17555         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
17556
17557         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
17558         the initial thread stack size.
17559
17560         * a-strmap.ads: Move package L to private part as it is not used in
17561         the spec. Found while reading code.
17562
17563 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
17564
17565         * tracebak.c: Introduce support for a GCC infrastructure based
17566         implementation of __gnat_backtrace.
17567
17568         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
17569         any more. Use accessors instead. This eases maintenance and relaxes
17570         some alignment constraints.
17571         (_GNAT_Exception structure): Remove the Ada specific fields
17572         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
17573         a-exexpr.adb.
17574         (is_handled_by, __gnat_eh_personality): Replace component references to
17575         exception structure by use of the new accessors.
17576
17577         * init.c (__gnat_initialize): Adjust comments to match the just
17578         reverted meaning of the -static link-time option.
17579
17580         * adaint.c (convert_addresses): Arrange not to define a stub for
17581         mips-irix any more, as we now want to rely on a real version from a
17582         recent libaddr2line.
17583
17584         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
17585         the personality routine can use them and not have to rely on a C
17586         counterpart of the record anymore. This simplifies maintenance and
17587         relaxes the constraint of having Standard'Maximum_Alignment match
17588         BIGGEST_ALIGNMENT.
17589         Update comments, and add a section on the common header alignment issue.
17590
17591 2004-06-25  Geert Bosch  <bosch@gnat.com>
17592
17593         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
17594         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
17595
17596 2004-06-25  Robert Dewar  <dewar@gnat.com>
17597
17598         * gnat_rm.texi: Fix section on component clauses to indicate that the
17599         restriction on byte boundary placement still applies for bit packed
17600         arrays.
17601         Add comment on stack usage from Initialize_Scalars
17602
17603         * gnat_ugn.texi: Add documentation for -gnatyLnnn
17604
17605         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
17606         limiting nesting level.
17607
17608         * usage.adb: Add line for -gnatyLnnn switch
17609
17610         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
17611         sem_ch13.adb, exp_aggr.adb: Minor reformatting
17612
17613         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
17614         type as well as on the subtype. This corrects a problem in freeze in
17615         setting alignments of atomic types.
17616
17617         * sem_eval.ads: Minor comment typo fixed
17618
17619         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
17620         level.  Minor reformatting.
17621
17622         * fname.adb (Is_Predefined_File_Name): Require a letter after the
17623         minus sign. This means that file names like a--b.adb will not be
17624         considered predefined.
17625
17626         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
17627         record Test new flag and give diagnostic for bad component clause.
17628         (Freeze_Entity): Set alignment of array from component alignment in
17629         cases where this is safe to do.
17630
17631         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
17632         arrays.
17633
17634         * cstand.adb: (Create_Standard): Set alignment of String to 1
17635
17636         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
17637
17638         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
17639         code in the common constrained array cases.
17640
17641         * a-storio.adb: Change implementation to avoid possible alignment
17642         problems on machines requiring strict alignment (data should be moved
17643         as type Buffer, not type Elmt).
17644
17645         * checks.adb (Apply_Array_Size_Check): Improve these checks by
17646         killing the overflow checks which we really do not need (64-bits is
17647         enough).
17648
17649 2004-06-25  Vincent Celier  <celier@gnat.com>
17650
17651         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
17652         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
17653         inconditionally for the main project.
17654         (Recursive_Add_Archives.Add_Archive_Path): New procedure
17655         (Link_Executables.Check_Time_Stamps): New procedure
17656         (Link_Executables.Link_Foreign): New procedure
17657         Changes made to reduce nesting level of this package
17658         (Check): New procedure
17659         (Add_Switches): When not in quiet output, check that a switch is not
17660         the concatenation of several valid switches. If it is, issue a warning.
17661         (Build_Global_Archive): If the global archive is rebuilt, linking need
17662         to be done.
17663         (Compile_Sources): Rebuilding a library archive does not imply
17664         rebuilding the global archive.
17665         (Build_Global_Archive): New procedure
17666         (Build_Library): New name for Build_Archive, now only for library
17667         project
17668         (Check_Archive_Builder): New procedure
17669         (Create_Global_Archive_Dependency_File): New procedure
17670         (Gprmake): Call Build_Global_Archive before linking
17671         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
17672         throughout.
17673         (Scan_Arg): Display the Copyright notice when -v is used
17674
17675         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
17676         for gnatls.
17677
17678         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
17679         COMPILE.
17680         Add new GNAT LIST qualifier /FILES=
17681         Added qualifier /DIRECTORY= to GNAT METRIC
17682         Added qualifier /FILES= to GNAT METRIC
17683         Added qualifier /FILES to GNAT PRETTY
17684
17685         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
17686         to take into account both versions of the switch.
17687
17688         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
17689         always be the last switch to the gcc driver. Disable switch storing so
17690         that switches automatically added by the gcc driver are not put in the
17691         ALI file.
17692
17693         * prj.adb (Project_Empty): Take into account changes in components of
17694         Project_Data.
17695
17696         * prj.ads (Languages_Processed): New enumaration value All_Languages.
17697
17698         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
17699         used. Split Boolean component Ada_Sources_Present in two Boolean
17700         components Ada_Sources_Present and Other_Sources_Present.
17701         Minor reformatting
17702
17703         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
17704         instead of Sources_Present.
17705         (Set_Ada_Paths.Add.Recursive_Add): Ditto
17706
17707         * prj-nmsc.adb: Minor reformatting
17708         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
17709         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
17710         Check_Ada_Naming_Scheme.
17711         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
17712         throughout.
17713
17714         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
17715         In_Limited.
17716         Make sure that all cycles where there is at least one "limited with"
17717         are detected.
17718         (Parse_Single_Project): New Boolean parameter In_Limited
17719
17720         * prj-proc.adb (Recursive_Check): When Process_Languages is
17721         All_Languages, call first Prj.Nmsc.Ada_Check, then
17722         Prj.Nmsc.Other_Languages_Check.
17723
17724         * prj-proc.adb (Process): Use Ada_Sources_Present or
17725         Other_Sources_Present (instead of Sources_Present) depending on
17726         Process_Languages.
17727
17728         * lang-specs.h: Keep -g and -m switches in the same order, and as the
17729         last switches.
17730
17731         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
17732         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
17733         False.
17734         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
17735         False.
17736
17737         * lib.ads (Disable_Switch_Storing): New procedure.
17738
17739         * make.adb: Modifications to reduce nesting level of this package.
17740         (Check_Standard_Library): New procedure
17741         (Gnatmake.Check_Mains): New procedure
17742         (Gnatmake.Create_Binder_Mapping_File): New procedure
17743         (Compile_Sources.Compile): Add switch -gnatez as the last option
17744         (Display): Never display -gnatez
17745
17746         * Makefile.generic:
17747         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
17748
17749         * gnatcmd.adb (Check_Project): New function
17750         (Process_Link): New procedure to reduce nesting depth
17751         (Check_Files): New procedure to reduce the nesting depth.
17752         For GNAT METRIC, include the inherited sources in extending projects.
17753         (GNATCmd): When GNAT LS is invoked with a project file and no files,
17754         add the list of files from the sources of the project file. If this list
17755         is too long, put it in a temp text files and use switch -files=
17756         (Delete_Temp_Config_Files): Delete the temp text file that contains
17757         a list of source for gnatpp or gnatmetric, if one has been created.
17758         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
17759         in the project file is too large, create a temporary text file that
17760         list them and pass it to the tool with "-files=<temp text file>".
17761         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
17762
17763         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
17764         generated file is in not in Ada.
17765
17766         * gnatls.adb: Remove all parameters And_Save that are no longer used.
17767         (Scan_Ls_Arg): Add processing for -files=
17768         (Usage): Add line for -files=
17769
17770         * g-os_lib.adb (On_Windows): New global constant Boolean flag
17771         (Normalize_Pathname): When on Windows and the path starts with a
17772         directory separator, make sure that the resulting path will start with
17773         a drive letter.
17774
17775         * clean.adb (Clean_Archive): New procedure
17776         (Clean_Project): When there is non-Ada code, delete the global archive,
17777         the archive dependency files, the object files and their dependency
17778         files, if they exist.
17779         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
17780
17781 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
17782
17783         * sinfo.ads: Fix typo in comment.
17784
17785         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
17786         the TSS for remote access-to-subprogram types, since these TSS are
17787         always present once the type has been analyzed.
17788         (RAS_E_Dereference): Same.
17789
17790         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
17791         reference raises Bad_Attribute, mark the reference as analyzed so the
17792         node (and any children resulting from rewrites that could have occurred
17793         during the analysis that ultimately failed) is not analyzed again.
17794
17795         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
17796
17797         * exp_dist.adb: Minor comment fix.
17798
17799         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
17800         type is an anonymous access type, no unchecked deallocation of the
17801         allocated object can occur. If the object is controlled, attach it with
17802         a count of 1. This allows attachment to the Global_Final_List, if
17803         no other relevant list is available.
17804         (Get_Allocator_Final_List): For an anonymous access type that is
17805         the type of a discriminant or record component, the corresponding
17806         finalisation list is the one of the scope of the type.
17807
17808 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
17809
17810         * sem_ch3.adb (Replace_Type): When computing the signature of an
17811         inherited subprogram, use the first subtype if the derived type
17812         declaration has no constraint.
17813
17814         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
17815         before applying previous optimization. Minor code cleanup.
17816
17817         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
17818         placed at the beginning of an unpacked record without explicit
17819         alignment, a slice of it will be aligned and does not need a copy when
17820         used as an actual.
17821
17822 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
17823
17824         PR ada/15591
17825         PR ada/15592
17826         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
17827         reference is written with expressions mimicking parameters.
17828
17829 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
17830
17831         PR ada/15589
17832         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
17833         STEP 2a. The constraints of a full type declaration of a derived record
17834         type are checked for conformance with those declared in the
17835         corresponding private extension declaration. The message
17836         "not conformant with previous declaration" is emitted if an error is
17837         detected.
17838
17839 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
17840
17841         * g-traceb.ads: Document the need for -E binder switch in the spec.
17842
17843         * g-trasym.ads: Document the need for -E binder switch in the spec.
17844
17845 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
17846
17847         * sem_prag.adb: Add handling of pragma Detect_Blocking.
17848
17849         * snames.h, snames.ads, snames.adb: Add entry for pragma
17850         Detect_Blocking.
17851
17852         * s-rident.ads: Change reference to pragma Detect_Blocking.
17853
17854         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
17855         system.ads.
17856
17857         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
17858         to indicate whether pragma Detect_Blocking is active.
17859
17860         * par-prag.adb: Add entry for pragma Detect_Blocking.
17861
17862         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
17863         of not handling WITH.
17864         Note that this replaces the previous update which was incorrect.
17865
17866 2004-06-25  Javier Miranda  <miranda@gnat.com>
17867
17868         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
17869         use-clauses to have a clean environment.
17870
17871         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
17872         the installation of the use-clauses to stablish a clean environment in
17873         case of compilation of a separate unit; otherwise the call to
17874         use_one_package is protected by the barrier Applicable_Use.
17875
17876         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
17877         the installation of the use-clauses to stablish a clean environment in
17878         case of compilation of a separate unit.
17879         (End_Use_Clauses): Minor comment cleanup.
17880
17881 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
17882
17883         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
17884
17885 2004-06-23  Richard Henderson  <rth@redhat.com>
17886
17887         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
17888
17889 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17890
17891         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
17892         now bool instead of int.
17893         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
17894         * trans.c (gnu_switch_label_stack): New function.
17895         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
17896         elaboration of renamed entity returns.
17897         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
17898         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
17899         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
17900         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
17901         DECL_SIZE_UNIT and simplify variable-sized case.
17902         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
17903         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
17904         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
17905         (build_unit_elab): Disable for now.
17906         * utils.c (mark_visited): New function.
17907         (pushdecl): Walk tree to call it for global decl.
17908         (update_pointer_to): Update all variants of pointer and ref types.
17909         Add arg to COMPONENT_REF.
17910         (convert): Likewise.
17911         Move check for converting between variants lower down.
17912         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
17913         (build_allocator): Don't force type of MODIFY_EXPR.
17914         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
17915         put_var_into_stack.
17916
17917 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17918
17919         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
17920         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
17921         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
17922         subprograms.
17923         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
17924         all callers changed.
17925         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
17926         the way that EXIT_STMT finds the loop label.
17927         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
17928         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
17929         (add_stmt): Use annotate_with_locus insted of setting directly.
17930         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
17931         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
17932         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
17933         (build_vms_descriptor): Add extra args to ARRAY_REF.
17934         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
17935         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
17936         New cases.
17937         (build_binary_op): Don't make explicit CONVERT_EXPR.
17938         Add extra rgs to ARRAY_REF.
17939
17940 2004-06-14  Pascal Obry  <obry@gnat.com>
17941
17942         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
17943         Windows.  Fix minor typo.
17944
17945         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
17946         which is now supported on Windows. With this implementation using the
17947         Library Project feature is no different on Windows than on UNIX.
17948
17949 2004-06-14  Vincent Celier  <celier@gnat.com>
17950
17951         * makegpr.adb (Compile_Sources): Nothing to do when there are no
17952         non-Ada sources.
17953
17954         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
17955
17956         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
17957         found, show the project name and the path of the previously parsed
17958         project file.
17959
17960 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
17961
17962         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
17963         array, avoid copying the actual before the call.
17964
17965 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
17966
17967         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
17968         Instead, allocate memory on worst-case alignment assumptions, and then
17969         return an aligned address within the allocated zone.
17970
17971 2004-06-14  Robert Dewar  <dewar@gnat.com>
17972
17973         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
17974         elab entities in predefined units in No_Run_Time_Mode.
17975         (Gen_Adainit_C): Same fix
17976         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
17977         units in No_Run_Time_Mode
17978         (Gen_Elab_Calls_C): Same fix
17979
17980         * symbols-vms-alpha.adb: Minor reformatting
17981
17982         * g-debpoo.ads: Minor reformatting
17983
17984         * lib.adb (In_Same_Extended_Unit): Version working on node id's
17985
17986         * lib.ads (In_Same_Extended_Unit): Version working on node id's
17987
17988         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
17989         working on nodes.
17990
17991         * make.adb: Minor reformatting
17992
17993         * par-ch12.adb: Minor reformatting
17994
17995         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
17996
17997         * prj-strt.adb: Minor reformatting
17998
17999         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
18000         be more general.
18001
18002         * sem_attr.adb: Minor reformatting
18003
18004         * sem_ch7.adb: Minor reformatting
18005
18006         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
18007         for type in the same unit as the object declaration.
18008
18009         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
18010         static string expressions and not just string literals.
18011         Minor reformatting
18012         (Set_Warning): Reset restriction warning flag for restriction pragma
18013         Implement pragma Profile_Warnings
18014         Implement pragma Profile (Restricted)
18015         Give obolescent messages for old restrictions and pragmas
18016
18017         * snames.h, snames.ads, snames.adb: Add new entry for pragma
18018         Profile_Warnings.
18019
18020         * s-rident.ads: Add declarations for restrictions required by profile
18021         Restricted and profile Ravenscar.
18022
18023         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
18024
18025         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
18026         configuration pragmas.
18027
18028 2004-06-11  Vincent Celier  <celier@gnat.com>
18029
18030         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
18031         gnatsym, when symbol policy is Restricted.
18032
18033         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
18034         gnatsym, when symbol policy is Restricted.
18035
18036         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
18037         read the symbol file.
18038         (Finalize): Fail in symbol policy Restricted if a symbol in the original
18039         symbol file is not in the object files. Do not create a new symbol file
18040         when symbol policy is Restricted.
18041
18042         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
18043         in Scng.
18044
18045         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
18046         Restricted.
18047         (Usage): Line for new switch -R
18048
18049         * make.adb (Initialize): When the platform is not VMS, add the
18050         directory where gnatmake is invoked in the front of the path, if
18051         gnatmake is invoked with directory information.  Change the Scan_Args
18052         while loop to a for loop.
18053         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
18054         if Depth is equal or greater than the proposed depth, there is nothing
18055         to do.
18056         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
18057         instead of 0.
18058
18059         * prj.ads: Add new symbol policy Restricted.
18060
18061         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
18062         with the new parameters Check_All_Labels and Case_Location.
18063
18064         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
18065         (Library_Symbol_File needs to be defined).
18066
18067         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
18068         and Case_Location If Check_All_Labels is True, check that all values of
18069         the string type are used, and output warning(s) if they are not.
18070
18071         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
18072         and Case_Location.
18073
18074         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
18075
18076         * gnat_ugn.texi: Update documentation about the library directory in
18077         Library Projects.
18078
18079         * makegpr.adb (Display_Command): In verbose mode, also display the
18080         value of the CPATH env var, when the compiler is gcc.
18081         (Initialize): Change the Scan_Args while loop to a for loop
18082         (Compile_Individual_Sources): Change directory to object directory
18083         before compilations.
18084
18085         * symbols.ads: New symbol policy Restricted.
18086
18087 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
18088
18089         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
18090         is now taken care of internally in the Exception_Propagation package
18091         and does not require clients assistance any more.
18092
18093         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
18094         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
18095         functions. Helpers to maintain a predicate required in the handling of
18096         occurrence transfer between tasks.
18097         This is now handled internally and does not require clients assistance
18098         for the setup/propagate separation anymore.
18099         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
18100         allocation strategy, handle the Setup_And_Not_Propagated predicate and
18101         document.
18102
18103         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
18104         raise_after_setup, now that everything is handled internally within the
18105         setup/propagation engine.
18106
18107 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
18108
18109         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
18110         Add additional conditions for the case of an actual being a simple
18111         name or literal. Improve inlining by preventing the generation
18112         of temporaries with a short lifetime (one use).
18113
18114 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
18115
18116         PR ada/15587
18117         * einfo.ads: Minor comment updates for Has_Completion and
18118         E_Constant list of flags.
18119
18120         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
18121         and constant redeclarations now set the Has_Completion flag of their
18122         defining identifiers.
18123
18124         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
18125         Inspect_Deferred_Constant_Completion.
18126         Used to detect private deferred constants that have not been completed
18127         either by a constant redeclaration or pragma Import. Emits error message
18128         "constant declaration requires initialization expression".
18129
18130         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
18131         completes a deferred constant.
18132
18133 2004-06-11  Geert Bosch  <bosch@gnat.com>
18134
18135         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
18136
18137         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
18138         calculating exponent for scaling denormal numbers.
18139         (Leading_Part): Properly raise Constraint_Error for zero or negative
18140         Adjustment.
18141         (Remainder): Properly raise Constraint_Error for zero divisor.
18142
18143 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
18144
18145         * sem_util.adb: Minor reformatting.
18146
18147         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
18148         dereference when accessing the entry parameter record.
18149         (Check_Array_Type): Always check for possible implicit dereference.
18150         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
18151         Abort if a pointer is still present (denoting that an implicit
18152         dereference was left in the tree by the front-end).
18153
18154         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
18155         dereference when accessing the entry parameter record.
18156         (Check_Array_Type): Always check for possible implicit dereference.
18157         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
18158         Abort if a pointer is still present (denoting that an implicit
18159         dereference was left in the tree by the front-end).
18160
18161 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
18162
18163         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
18164         message, like the compiler itself does. Easier to parse the output.
18165
18166         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
18167
18168         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
18169         be base names, and not includes directories.
18170
18171 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
18172
18173         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
18174         so that dependencies are properly taken into account by make.
18175
18176 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
18177
18178         PR ada/15622
18179         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
18180         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
18181
18182 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
18183
18184         * Makefile.in (install-gnatlib): install target-specific run-time files.
18185
18186         * Make-lang.in: Remove obsolete targets.
18187
18188 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
18189
18190         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
18191         specification, to catch misuses of program unit names.
18192
18193         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
18194         superfluous conversions in an instance.
18195
18196 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
18197
18198         PR ada/15403
18199         * sem_ch12.adb (Save_References): If operator node has been folded to
18200         enumeration literal, associated_node must be discarded.
18201
18202 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
18203
18204         * s-stchop-vxworks.adb: Add required pragma Convention to
18205         Task_Descriptor because it is updated by a C function.
18206
18207 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
18208
18209         PR ada/15568
18210         * Makefile.in: Remove target specific SO_OPT on IRIX
18211
18212 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18213
18214         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
18215         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
18216         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
18217         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
18218         (STMT_STMT, USE_STMT): New statement codes.
18219         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
18220         * ada-tree.h: Reflect above changes.
18221         (struct tree_loop_id): Deleted.
18222         (union lang_tree_node, struct lang_decl, struct lang_type):
18223         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
18224         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
18225         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
18226         (IS_ADA_STMT): New macro.
18227         * decl.c (annotate_decl_with_node): New function.
18228         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
18229         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
18230         Call add_stmt_with_node to do needed assignments.
18231         Add call to update setjmp buffer directly, not via EXPR_STMT.
18232         (maybe_variable): Argment GNAT_NODE deleted.
18233         * gigi.h (maybe_variable): Likewise.
18234         (make_transform, add_stmt_with_node, set_block_for_group): New.
18235         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
18236         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
18237         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
18238         (set_lineno, set_lineno_from_sloc): Likewise.
18239         (record_code_position, insert_code_for): Likewise.
18240         (gnat_poplevel): Now returns void.
18241         (end_subprog_body): Now takes argument.
18242         * misc.c (cgraph.h, tree-inline.h): New includes.
18243         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
18244         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
18245         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
18246         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
18247         (gnat_parse_file): Don't set immediate_size_expand.
18248         Call cgraph functions.
18249         (gnat_expand_expr): Remove most cases.
18250         (record_code_position, insert_code_for): Remove from here.
18251         * trans.c (toplev.h, tree-gimple.h): Now included.
18252         (discard_file_names): Deleted.
18253         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
18254         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
18255         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
18256         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
18257         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
18258         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
18259         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
18260         (set_block_for_group, add_stmt_list): Likewise.
18261         (start_stmt_group): Renamed from start_block_stmt.
18262         (end_stmt_group): Likewise, from end_block_stmt.
18263         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
18264         (gigi): Don't set discard_file_names or call set_lineno.
18265         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
18266         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
18267         Numerous changes throughout to reflect new names and complete
18268         function-at-a-time implementation.
18269         (gnat_expand_stmt): Delete or comment out all cases.
18270         (process_inlined_subprograms): Use add_stmt.
18271         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
18272         call set_lineno; also remove unneeded block handling.
18273         (process_type): Remove unneeded block handling.
18274         (build_unit_elab): Remove calls to deleted functions.
18275         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
18276         (tree-dump.h): Likewise.
18277         (struct ada_binding_level): Add field jmpbuf_decl.
18278         (gnat_define_builtin, gnat_install_builtins): New.
18279         (gnat_gimplify_function, gnat_finalize): Likewise.
18280         (gnat_poplevel): No longer return BLOCK, set it instead.
18281         Remove code dealing with nested functions.
18282         (gnat_init_decl_processing): Also set size_type_node.
18283         Call gnat_install_builtins.
18284         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
18285         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
18286         Remove special-case for "main".
18287         (end_subprog_body): Add arg and rework for tree-ssa.
18288         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
18289         Add case for BOOLEAN_TYPE.
18290         * utils2.c (rtl.h): Now include.
18291         (build_call_raise): Test Debug_Flag_NN directly.
18292         (build_call_alloc_dealloc): Don't use local stack allocation for now.
18293         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
18294         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
18295
18296 2004-06-07  Robert Dewar  <dewar@gnat.com>
18297
18298         * a-direct.ads, einfo.ads: Minor comment updates
18299
18300         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
18301         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
18302         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
18303         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
18304         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
18305
18306         * s-interr-sigaction.adb: Remove unreferenced variable
18307         (Attached_Interrupts).  Minor reformatting.
18308         Avoid use of variable I (replace by J).
18309
18310         * par-ch10.adb: Fix text of one error message
18311
18312         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
18313         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
18314         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
18315         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
18316         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
18317         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
18318         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
18319         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
18320         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
18321         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
18322         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
18323         2005 support.
18324
18325 2004-06-07  Doug Rupp  <rupp@gnat.com>
18326
18327         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
18328
18329         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
18330
18331         * mlib-tgt-vms-ia64.adb: New file.
18332
18333         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
18334         Add mlib-tgt-vms-ia64.adb
18335         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
18336         Move to alpha specific ifeq section.
18337         Add VMS specific versions of symbols.adb
18338         Renaming of 5q vms files.
18339
18340         * 5qsystem.ads renamed to system-vms_64.ads.
18341
18342 2004-06-07  Vincent Celier  <celier@gnat.com>
18343
18344         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
18345         explain that when a time of day corresponding to the non existing hour
18346         on the day switching to DST is specified, Split may return a different
18347         value for Seconds.
18348
18349         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
18350         to GNAT PRETTY.
18351
18352         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
18353         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
18354
18355         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
18356         to False.
18357         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
18358         the linking options.
18359         (Build_Library.Check_Libs): On VMS, if there is a dependency on
18360         g-trasym.ads, set Gtrasymobj_Needed to True.
18361
18362         * prj-attr.adb: Add new package Metrics for gnatmetric
18363
18364         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
18365         canonical case to take into account files with upper case characters on
18366         Windows.
18367         (Ada_Check): Load the reference symbol file name in the name buffer to
18368         check it, not the symbol file name.
18369
18370         * snames.ads, snames.adb: Add standard name Metrics (name of project
18371         file package for gnatmetric).
18372
18373         * vms_conv.ads: Add Metric to Comment_Type
18374
18375         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
18376
18377         * vms_data.ads: Add qualifiers for GNAT METRIC
18378
18379         * makegpr.adb (Link_Executables): Take into account the switches
18380         specified in package Linker of the main project.
18381
18382 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
18383
18384         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
18385         the index of the last element is Units.Last, not Units.Table'Last
18386         (which is usually not a valid index within the actually allocated
18387         storage for the table).
18388
18389         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
18390         determines whether to generate a call to a checked storage pool
18391         Dereference action.
18392         Generate such a call only for a dereference that either comes from
18393         source, or is the result of rewriting a dereference that comes from
18394         source.
18395
18396 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
18397
18398         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
18399
18400 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
18401
18402         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
18403         file level, elaborate the stride for inner dimensions in alignment
18404         units, not bytes.
18405
18406         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
18407         in a comment.
18408
18409 2004-06-07  Javier Miranda  <miranda@gnat.com>
18410
18411         * exp_ch6.adb: Correct wrong modification in previous patch
18412
18413 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
18414
18415         * g-trasym.ads: Corrected comment to properly reflect level of support
18416         on VMS.
18417
18418 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
18419
18420         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
18421         includes case of a variable referenced on the left hand side of an
18422         assignment, therefore remove redundant code. Variables and prefixes of
18423         indexed or selected components are now marked as referenced on left
18424         hand side. Warnings are now properly emitted when variables or prefixes
18425         are assigned but not read.
18426
18427         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
18428         left hand side referenced variables. Private access types do not
18429         produce the warning "variable ... is assigned but never read".
18430         Add also additional checks to left hand side referenced variables.
18431         Aliased, renamed objects and access types do not produce the warning
18432         "variable ... is assigned but never read" since other entities may read
18433         the memory location.
18434
18435 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
18436
18437         * Makefile.in: In the powerpc/vxworks-specific section, restore
18438         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
18439         by mistake).
18440
18441 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
18442
18443         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
18444         predefined operators.
18445         Removes spurious type errors from g-trasym-vms.adb.
18446
18447         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
18448         distinct from the operator appearing in the source, call appropriate
18449         routine to insert conversions when needed, and complete resolution of
18450         node.
18451         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
18452         interpretations for rewritten right operand.
18453         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
18454         the other operand is overloaded and the context is a type conversion.
18455
18456 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18457
18458         * ada-tree.def (BLOCK_STMT): Now has two operands.
18459         (BREAK_STMT): New.
18460
18461         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
18462
18463         * gigi.h: (gnat_poplevel): Now returns a tree.
18464
18465         * trans.c (end_block_stmt): Add arg; all callers changed.
18466         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
18467         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
18468         (add_stmt): Set TREE_TYPE.
18469         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
18470         (gnat_expand_stmt, case BREAK_STMT): New case.
18471
18472         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
18473
18474 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
18475
18476         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
18477         procedure Set_Stack_Size that is not needed.
18478
18479 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
18480
18481         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
18482         used for gnatpp input file and for the files upon which it depends
18483
18484 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
18485
18486         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
18487
18488 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
18489
18490         * gnatvsn.ads: Bump version numbers appropriately.
18491         Add new build type.
18492
18493 2004-06-07  Pascal Obry  <obry@gnat.com>
18494
18495         * gnat_ugn.texi: Improve comments about imported names and link names
18496         on Windows. Add a note about the requirement to use -k gnatdll's option
18497         when working with a DLL which has stripped stdcall symbols (no @nn
18498         suffix).
18499
18500 2004-05-27  Vincent Celier  <celier@gnat.com>
18501
18502         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
18503         COMMENTS_LAYOUT=UNTOUCHED
18504
18505         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
18506         symbols-vms-alpha.adb
18507
18508 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
18509
18510         * sem.ads: Clarify documentation on checks suppression.
18511
18512         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
18513
18514 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
18515
18516         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
18517         the case of multiple derivations.
18518         (Is_Object_Reference): For a selected component, verify that the prefix
18519         is itself an object and not a value.
18520
18521         * sem_ch12.adb (Same_Instantiated_Constant): New name for
18522         Same_Instantiated_Entity.
18523         (Same_Instantiated_Variable): Subsidiary to
18524         Check_Formal_Package_Instance, to recognize actuals for in-out generic
18525         formals that are obtained from a previous formal package.
18526         (Instantiate_Subprogram_Body): Emit proper error when
18527         generating code and the proper body of a stub is missing.
18528
18529         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
18530         has a universal interpretation, do the disambiguation here.
18531
18532         * exp_ch4.adb (Expand_N_Type_Conversion,
18533         Expand_N_Unchecked_Type_Conversion): Special handling when target type
18534         is Address, to avoid typing anomalies when Address is a visible integer
18535         type.
18536
18537         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
18538         to determine whether a subprogram should not be marked Pure, even when
18539         declared in a pure package.
18540
18541 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
18542
18543         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
18544
18545         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
18546         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
18547         Update the documentation about the Ravenscar profile, following the
18548         definition found in AI-249.
18549
18550         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
18551         setting the Profile (Ravenscar). This must be done in addition to
18552         setting the required restrictions.
18553
18554         * rtsfind.ads: Add the set of operations defined in package
18555         Ada.Interrupts.
18556
18557         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
18558         restriction.
18559
18560 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
18561
18562         lang-specs.h: Always require -c or -S and always redirect to /dev/null
18563         if -gnatc or -gnats is passed.
18564
18565 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
18566
18567         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
18568         a significant reference. Warnings are now properly emitted when a
18569         discriminated type is not referenced.
18570
18571         * lib-xref.adb (Generate_Reference): A deferred constant completion,
18572         record representation clause or record type discriminant does not
18573         produce a reference to its corresponding entity. Warnings are now
18574         properly emitted when deferred constants and record types are not
18575         referenced.
18576
18577 2004-05-27  Geert Bosch  <bosch@gnat.com>
18578
18579         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
18580         Fixes ACATS Annex G tests.
18581
18582 2004-05-27  Robert Dewar  <dewar@gnat.com>
18583
18584         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
18585         handling WITH
18586
18587 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
18588
18589         * s-interr.adb (Server_Task): Take into account case of early return
18590         from sigwait under e.g. linux.
18591
18592 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
18593
18594         * gnat_ugn.texi: Add description for the new gnatpp options:
18595          -rnb - replace the original source without creating its backup copy
18596          -c0 - do not format comments
18597
18598 2004-05-24  Geert Bosch  <bosch@gnat.com>
18599
18600         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
18601         with 192 bits of precision, sufficient to reduce a double-extended
18602         arguments X with a maximum relative error of T'Machine_Epsilon, for X
18603         in -2.0**32 .. 2.0**32.
18604         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
18605         reduction by the processor, which only uses a 68-bit approximation of
18606         Pi.
18607         (Tan): Always reduce arguments and compute function either using
18608         the processor's fptan instruction, or by dividing sin and cos as needed.
18609
18610 2004-05-24  Doug Rupp  <rupp@gnat.com>
18611
18612         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
18613         gcc error on 32/64 bit VMS.
18614
18615 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
18616
18617         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
18618         since this is what we get for stack overflows although not documented
18619         as such.
18620         Document the issues which may require adjustments to our signal
18621         handlers.
18622
18623 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
18624
18625         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
18626         enclosing dynamic scope if the instantiation is within a generic unit.
18627
18628 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
18629
18630         * exp_dbug.ads: Fix typo.
18631
18632         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
18633         Rename it to its proper name: system-linux-ia64.ads
18634         (stamp-gnatlib1): Remove extra target specific run time files when
18635         setting up the rts directory.
18636
18637 2004-05-24  Javier Miranda  <miranda@gnat.com>
18638
18639         * einfo.ads, einfo.adb (Limited_Views): Removed.
18640         (Limited_View): New attribute that replaces the previous one. It is
18641         now a bona fide package with the limited-view list through the
18642         first_entity and first_private attributes.
18643
18644         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
18645         limited-private-with clause.
18646         (Install_Limited_Withed_Unit): Install the private declarations of a
18647         limited-private-withed package. Update the installation of the shadow
18648         entities according to the new structure (see Build_Limited_Views)
18649         (Build_Limited_Views): Replace the previous implementation of the
18650         limited view by a package entity that references the first shadow
18651         entity plus the first shadow private entity (required for limited-
18652         private-with clause)
18653         (New_Internal_Shadow_Entity): Code cleanup.
18654         (Remove_Limited_With_Clause): Update the implementation to undo the
18655         new work carried out by Build_Limited_Views.
18656         (Build_Chain): Complete documentation.
18657         Replace Ada0Y by Ada 0Y in comments
18658         Minor reformating
18659
18660         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
18661         types the level of accessibility depends on the enclosing type
18662         declaration.
18663
18664         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
18665         entities. Complete documentation of previous change.
18666
18667 2004-05-24  Robert Dewar  <dewar@gnat.com>
18668
18669         * namet.adb: Minor reformatting
18670         Avoid use of name I (replace by J)
18671         Minor code restructuring
18672
18673         * sem_ch6.adb: Minor reformatting
18674
18675         * lib-writ.adb: Do not set restriction as active if this is a
18676         Restriction_Warning case.
18677
18678         * sem_prag.adb: Reset restriction warning flag if real pragma
18679         restriction encountered.
18680
18681         * s-htable.adb: Minor reformatting
18682         Change rotate count to 3 in Hash (improves hash for small strings)
18683
18684         * 5qsystem.ads: Add comments for type Address (no literals allowed).
18685
18686         * gnat_ugn.texi: Add new section of documentation "Code Generation
18687         Control", which describes the use of -m switches.
18688
18689 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
18690
18691         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
18692         through the DECL_INITIAL for renamed variables.
18693
18694 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
18695
18696         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
18697
18698 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
18699
18700         * exp_dbug.ads: Correct comments concerning handling of overloading,
18701         since we no longer use $ anymore.
18702
18703 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
18704
18705         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
18706         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
18707         with illegal subunits.
18708
18709 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
18710
18711         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
18712         body with front-end inlining enabled, check whether an inline pragma
18713         appears immediately after the body and applies to it.
18714
18715         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
18716         enabled and the pragma appears after the body of the subprogram.
18717
18718 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18719
18720         Part of function-at-a-time conversion
18721
18722         * misc.c (adjust_decl_rtl): Deleted.
18723         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
18724         Define.
18725
18726         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
18727         (add_decl_stmt, add_stmt, block_has_vars): New functions.
18728         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
18729
18730         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
18731         when making a decl.
18732         (gnat_to_gnu_entity): Likewise.
18733         Use add_stmt to update setjmp buffer.
18734         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
18735         flush_addressof.
18736         No longer call adjust_decl_rtl.
18737         (DECL_INIT_BY_ASSIGN_P): New macro.
18738         (DECL_STMT_VAR): Likewise.
18739
18740         * trans.c (gigi): Call start_block_stmt to make the outermost
18741         BLOCK_STMT.
18742         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
18743         Call start_block_stmt and end_block_stmt temporarily.
18744         Use gnat_expand_stmt instead of expand_expr_stmt.
18745         (add_decl_stmt): New function.
18746         (tree_transform): Call it.
18747         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
18748         (end_block_stmt): Set type and NULL_STMT.
18749         (gnat_expand_stmt): Make recursize call instead of calling
18750         expand_expr_stmt.
18751         (gnat_expand_stmt, case DECL_STMT): New case.
18752         (set_lineno_from_sloc): Do nothing if global.
18753         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
18754         (start_block_stmt, add_stmt, end_block_stmt): New functions.
18755         (build_block_stmt): Call them.
18756         (gnat_to_code): Don't expand NULL_STMT.
18757         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
18758         args.
18759         (tree_transform): Likewise.
18760         (tree_transform, case N_Null_Statement): Return NULL_STMT.
18761         (gnat_expand_stmt, case NULL_STMT): New case.
18762         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
18763         IF_STMT_TRUE.
18764
18765         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
18766         TREE_ADDRESSABLE.
18767
18768         * utils.c (create_var_decl): Do not call expand_decl or
18769         expand_decl_init.
18770         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
18771         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
18772         here.
18773         (struct e_stack): Add chain_next to GTY.
18774         (struct binding_level): Deleted.
18775         (struct ada_binding_level): New struct.
18776         (free_block_chain): New.
18777         (global_binding_level, clear_binding_level): Deleted.
18778         (global_bindings_p): Rework to see if no chain.
18779         (kept_level_p, set_block): Deleted.
18780         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
18781         new data structure and work directly on BLOCK node.
18782         (gnat_poplevel): Similarly.
18783         (get_decls): Look at BLOCK_VARS.
18784         (insert_block): Work directly on BLOCK node.
18785         (block_has_var): New function.
18786         (pushdecl): Rework for new binding structures.
18787         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
18788         poplevel.
18789         (build_subprog_body): Likewise.
18790         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
18791
18792         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
18793
18794         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
18795         (DECL_STMT_VAR): Likewise.
18796
18797 2004-05-17  Robert Dewar  <dewar@gnat.com>
18798
18799         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
18800         procedure
18801
18802         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
18803         of restriction synonyums by using
18804         Restrict.Process_Restriction_Synonyms.
18805
18806         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
18807
18808         * s-restri.ads (Tasking_Allowed): Correct missing comment
18809
18810         * s-rident.ads: Add entries for restriction synonyms
18811
18812         * ali.adb: Fix some problems with badly formatted ALI files that can
18813         result in infinite loops.
18814
18815         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
18816         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
18817         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
18818         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
18819         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
18820         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
18821         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
18822         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
18823         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
18824         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
18825         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
18826         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
18827         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
18828         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
18829         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
18830         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
18831         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
18832         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
18833         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
18834         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
18835         to Task_Id (minor cleanup).
18836
18837 2004-05-17  Vincent Celier  <celier@gnat.com>
18838
18839         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
18840         directory separator.
18841
18842         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
18843         project being extended, if Languages is not declared in extending
18844         project.
18845
18846 2004-05-17  Javier Miranda  <miranda@gnat.com>
18847
18848         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
18849         limited view of a visible sibling.
18850
18851 2004-05-14  Robert Dewar  <dewar@gnat.com>
18852
18853         * gnat_ugn.texi: Minor change to -gnatS documentation
18854
18855         * sprint.adb: Remove some instances of Assert (False) and for this
18856         purpose replace them by output of a ??? string.
18857
18858         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
18859         Assert (False).
18860
18861         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
18862         flag processing. This was suppressing required dependencies in
18863         No_Run_Time mode and is not needed since the binder does not generate
18864         references for things in libgnat anyway.
18865
18866         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
18867         warning.
18868
18869 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
18870
18871         * gnat_ugn.texi: Document AIX-specific issue with initialization of
18872         resolver library.
18873
18874         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
18875         action for the case of an actual parameter in an init proc call.
18876
18877 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
18878
18879         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
18880         subtype, check visible entities in base type.
18881
18882         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
18883         actions if the object is a renaming.
18884
18885         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
18886         Check_Formal_Package_Instance, to determine more precisely when the
18887         formal and the actual denote the same entity.
18888
18889 2004-05-14  Javier Miranda  <miranda@gnat.com>
18890
18891         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
18892
18893         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
18894         corresponding to a private_with must be removed from visibility; it
18895         will be made visible later, just before we analyze the private part of
18896         the package.
18897         (Check_Private_Child_Unit): Allow private_with clauses in public
18898         siblings.
18899         (Install_Siblings): Make visible the private entities of private-withed
18900         siblings.
18901         (Install_Withed_Unit): Do not install the private withed unit if we
18902         are compiling a package declaration and the Private_With_OK flag was
18903         not set by the caller. These declarations will be installed later,
18904         just before we analyze the private part of the package.
18905
18906         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
18907         during the evaluation of the expression that initializes the object,
18908         decorate it with the expected type to avoid cascade errors.
18909         Code cleanup.
18910
18911         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
18912         subprogram we have to install the private_with clauses after its
18913         specification has been analyzed (as documented in AI-262.TXT).
18914
18915         * sem_ch8.adb (Has_Private_With): New function. Determines if the
18916         current compilation unit has a private with on a given entity.
18917         (Find_Direct_Name): Detect the Beaujolais problem described in
18918         AI-262.TXT
18919
18920         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
18921         provides the functionality of the function Is_Ancestor that was
18922         previously available in sem_ch10. It has been renamed to avoid
18923         overloading.
18924
18925         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
18926
18927 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18928
18929         * utils.c (build_vms_descriptor): Use SImode pointers.
18930
18931 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
18932
18933         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
18934
18935 2004-05-14  GNAT Script  <nobody@gnat.com>
18936
18937         * Make-lang.in: Makefile automatically updated
18938
18939 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
18940
18941         Renaming of target specific files for clarity
18942
18943         * Makefile.in: Rename GNAT target specific files.
18944
18945         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
18946         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
18947         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
18948         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
18949         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
18950         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
18951         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
18952         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
18953         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
18954         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
18955         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
18956         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
18957         51osinte.adb, 51osinte.ads, 51system.ads,
18958         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
18959         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
18960         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
18961         56tpopsp.adb, 57system.ads, 58system.ads,
18962         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
18963         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
18964         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
18965         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
18966         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
18967         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
18968         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
18969         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
18970         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
18971         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
18972         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
18973         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
18974         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
18975         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
18976         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
18977         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
18978         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
18979         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
18980         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
18981         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
18982         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
18983         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
18984         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
18985         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
18986         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
18987         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
18988         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
18989         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
18990         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
18991         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
18992         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
18993         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
18994         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
18995         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
18996         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
18997         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
18998         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
18999         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
19000         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
19001         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
19002
19003         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
19004         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
19005         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
19006         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
19007         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
19008         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
19009         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
19010         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
19011         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
19012         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
19013         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
19014         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
19015         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
19016         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
19017         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
19018         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
19019         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
19020         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
19021         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
19022         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
19023         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
19024         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
19025         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
19026         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
19027         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
19028         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
19029         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
19030         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
19031         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
19032         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
19033         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
19034         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
19035         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
19036         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
19037         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
19038         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
19039         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
19040         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
19041         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
19042         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
19043         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
19044         s-osinte-vms.ads, s-osinte-vxworks.adb,
19045         s-osinte-vxworks.ads, s-osprim-mingw.adb,
19046         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
19047         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
19048         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
19049         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
19050         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
19051         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
19052         s-stchop-vxworks.adb, s-taprop-dummy.adb,
19053         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
19054         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
19055         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
19056         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
19057         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
19058         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
19059         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
19060         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
19061         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
19062         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
19063         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
19064         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
19065         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
19066         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
19067         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
19068         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
19069         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
19070         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
19071         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
19072         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
19073         system-irix-o32.ads, system-linux-x86_64.ads,
19074         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
19075         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
19076         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
19077         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
19078         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
19079         system-vxworks-mips.ads, system-vxworks-ppc.ads,
19080         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
19081         above.
19082
19083 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
19084
19085         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
19086
19087 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
19088
19089         Merge from tree-ssa-20020619-branch.
19090
19091         * config-lang.in (boot_language, build_by_default): Set
19092         to no.
19093         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
19094         (max_size): Add static chain op for call_expr.
19095
19096 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
19097
19098         PR target/15331
19099         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
19100
19101 2004-05-11  Roger Sayle  <roger@eyesopen.com>
19102
19103         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
19104         COND_EXPR.
19105
19106 2004-05-10  Doug Rupp  <rupp@gnat.com>
19107
19108         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
19109         system.aux_dec.
19110
19111         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
19112
19113         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
19114
19115         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
19116         Fixes undefined symbols in IA64 gnatlib.
19117
19118         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
19119
19120         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
19121         Short_Address). This will be moved to system.auxdec.
19122
19123 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
19124
19125         * sem_util.adb: Replace test for presence of a node that is always
19126         present with a call to Discard_Node.
19127
19128         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
19129         Analyze on the library unit node after generation of distribution stub
19130         constructs.  The call was a no-op because Unit_Node has already been
19131         Analyzed, and the tree fragments for the distribution stubs are
19132         analyzed as they are inserted in Exp_Dist.
19133         Update comment regarding to distribution stubs to reflect that we
19134         do not generate stub in separate files anymore.
19135
19136         * einfo.ads: Clarify the fact that a tagged private type has the
19137         E_Record_Type_With_Private Ekind.
19138
19139         * erroutc.adb: Minor reformatting
19140
19141         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
19142         values if line length is increased using -gnatyM (noticed during code
19143         reading).
19144
19145         * eval_fat.adb: Minor reformatting
19146         Put spaces around exponentiation operator
19147
19148 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
19149
19150         PR ada/15005
19151         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
19152         has been rewritten as an explicit dereference, retrieve type of
19153         original node to check for possibly unconstrained record type.
19154
19155 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
19156
19157         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
19158         overriding, use the operation of the parent unconditionally.
19159
19160         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
19161         operation when either operand is a literal, to avoid further
19162         ambiguities.
19163
19164         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
19165         overridden by a previous explicit declaration, mark the previous entity
19166         as overriding.
19167
19168         * sem_disp.adb (Check_Dispatching_Operation): New predicate
19169         Is_Visibly_Controlled, to determine whether a declaration of a
19170         primitive control operation for a derived type overrides an inherited
19171         one. Add warning if the explicit declaration does not override.
19172
19173 2004-05-10  Vincent Celier  <celier@gnat.com>
19174
19175         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
19176         some cases when the sources are no longer present.
19177
19178         * make.adb (Collect_Arguments): Fail if an external source, not part
19179         of any project need to be compiled, when switch -x has not been
19180         specified.
19181
19182         * makeusg.adb: Document new switch -x
19183
19184         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
19185         defaulted to False.
19186
19187         * switch-m.adb (Scan_Make_Switches): New switch -x
19188
19189         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
19190         gnatmake switch -x.
19191
19192         * gnat_ugn.texi: Document new gnatmake switch -x
19193
19194 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
19195
19196         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
19197
19198         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
19199         (process_attributes): Likewise.
19200
19201 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
19202
19203         * s-inmaop.ads: Fix spelling mistake in one of the comments.
19204
19205 2004-05-10  Robert Dewar  <dewar@gnat.com>
19206
19207         * gnat_ugn.texi: Document that for config pragma files, the maximum
19208         line length is always 32767.
19209
19210         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
19211         literals is now allowed.
19212
19213         * gnat-style.texi: Remove statement about splitting long lines before
19214         an operator rather than after, since we do not follow this rule at all.
19215         Clarify rule (really lack of rule) for spaces around exponentiation
19216
19217         * sem_elim.adb: Allow concatenation of string literals as well as a
19218         single string literal for pragma arguments.
19219
19220         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
19221
19222         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
19223         written for append case.
19224
19225         * frontend.adb: Changes to avoid checking max line length in config
19226         pragma files.
19227
19228         * g-os_lib.ads: Minor reformatting
19229
19230         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
19231         wrong in any case. Instead use standard value. Noticed during code
19232         reading.
19233
19234         * opt.ads (Max_Line_Length): New field, used to implement removal of
19235         limitation on length of lines when scanning config pragma files.
19236
19237         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
19238         makeutl.ads, makeutl.adb: Minor reformatting
19239
19240         * scn.adb: Do not check line length while scanning config pragma files
19241         Do not check line length while scanning out license information
19242
19243         * scng.adb: Changes to avoid line length checks while parsing config
19244         pragma files.
19245
19246 2004-05-10  GNAT Script  <nobody@gnat.com>
19247
19248         * Make-lang.in: Makefile automatically updated
19249
19250 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
19251
19252         * osint.adb (Find_Program_Name): Fix handling of VMS version
19253         number.
19254
19255 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
19256
19257         * g-os_lib.ads (Invalid_Time): New constant
19258
19259         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
19260         return OS_Time instead of time_t to match what is imported by Ada.
19261         Now return -1 if the file doesn't exist, instead of a random value
19262
19263 2004-05-05  Robert Dewar  <dewar@gnat.com>
19264
19265         * usage.adb: Add line for -gnatR?s switch
19266
19267         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
19268
19269         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
19270         and for Match (Data_First, Data_last)
19271
19272         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
19273         written when we are dealing with multi-unit files.
19274
19275 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
19276
19277         * Makefile.in: Remove unused targets and variables.
19278
19279 2004-05-05  Vincent Celier  <celier@gnat.com>
19280
19281         * switch-m.adb: New gnatmake switch -eI
19282
19283         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
19284         of new gnatmake switch -eInnn.
19285
19286         * makegpr.adb: Take into account new parameters Index and Src_Index in
19287         Prj.Util.
19288
19289         * clean.adb: Implement support for multi-unit sources, including new
19290         switch -i.
19291
19292         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
19293         Src_Index.
19294
19295         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
19296         (Extract_From_Q): New out parameter Index
19297         (Mark, Is_Marked): Subprograms moved to Makeutl
19298         (Switches_Of): New parameter Source_Index
19299         (Add_Switch): New parameter Index
19300         (Check): New parameter Source_Index
19301         (Collect_Arguments): New parameter Source_Index
19302         (Collect_Arguments_And_Compile): New parameter Source_Index
19303         (Compile): New parameter Source_Index
19304         Put subprograms in alphabetical order
19305         Add support for multi-source sources, including in project files.
19306
19307         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
19308         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
19309         Make.
19310
19311         * makeusg.adb: New gnatmake switch -eInnn
19312
19313         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
19314         Prj.Util.Value_Of.
19315
19316         * opt.ads (Main_Index): New variable, defaulted to 0.
19317
19318         * osint.ads, osinte.adb (Add_File): New parameter Index
19319         (Current_Source_Index): New function
19320
19321         * prj.adb: Take into account new components Index and Src_Index
19322
19323         * prj.ads (String_Element): New component Index
19324         (Variable_Value): New component Index
19325         (Array_Element): New component Src_Index
19326
19327         * prj-attr.adb: Indicate that optional index may be specified for
19328         attributes Main, Executable, Spec, Body and some of Switches.
19329
19330         * prj-attr.ads (Attribute_Kind): New values for optional indexes
19331         (Attribute_Record): New component Optional_Index
19332
19333         * prj-com.ads (File_Name_Data): New component Index
19334
19335         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
19336
19337         * prj-env.adb (Put): Output optional index
19338
19339         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
19340         attributes Spec and Body.
19341
19342         * prj-nmsc.adb: Process optional indexes
19343
19344         * prj-pp.adb: Ouput "at" for optional indexes
19345
19346         * prj-proc.adb: Take into account optional indexes
19347
19348         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
19349         Optional_Index. For string literal,
19350         process optional index when Optional_Index is True.
19351         (Parse_Expresion): New Boolean parameter Optional_Index
19352
19353         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
19354         (Set_Source_Index_Of): New procedure
19355
19356         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
19357         index.
19358
19359         * prj-util.ads (Executable_Of): New parameter Index
19360         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
19361         New parameter Src_Index, defaulted to 0.
19362
19363 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
19364
19365         PR ada/15257
19366         * sem_ch3.adb (Access_Definition): If this is an access parameter
19367         whose designated type is imported through a limited_with clause, do
19368         not add the enclosing subprogram to the list of private dependents of
19369         the type.
19370
19371 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
19372
19373         PR ada/15258
19374         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
19375         a limited_with clause, and the other is its non-limited view.
19376
19377 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
19378
19379         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
19380
19381         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
19382         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
19383         Stand.Boolean_Literals to produce references to entities
19384         Standard_False and Standard_True from compile-time computed boolean
19385         values.
19386
19387         * stand.ads (Boolean_Literals): New variable, provides the entity
19388         values for False and True, for use by the expander.
19389
19390 2004-05-05  Doug Rupp  <rupp@gnat.com>
19391
19392         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
19393         5vinmaop.adb: Unchecked convert Short_Address vice Address
19394
19395         * adaint.c, raise.c: Caste CRTL function return value
19396         to avoid gcc error on 32/64 bit IVMS.
19397
19398         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
19399         target = IA64/VMS.
19400
19401         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
19402
19403         * 5qsystem.ads (Address): Declare as Long_Integer
19404         (Short_Address): Declare as 32 bit subtype of Address
19405         Declare  abstract address operations to avoid gratuitous ambiguities.
19406
19407 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
19408
19409         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
19410         instead of the old Boolean_Entry_Barriers.
19411         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
19412
19413 2004-05-05  GNAT Script  <nobody@gnat.com>
19414
19415         * Make-lang.in: Makefile automatically updated
19416
19417 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
19418
19419         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
19420
19421 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
19422
19423         PR ada/15152
19424         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
19425         alone. Replacing object references by literals is inappropriate in a
19426         so low level context.
19427
19428 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
19429
19430         * a-exexpr.adb: Add comments
19431
19432 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
19433
19434         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
19435         declare the Ancestor_Tags array in Type_Specific_Data with a small size
19436         without risking a bounds check error when accessing one of its
19437         components.
19438         (Type_Specific_Data): Define Ancestor_Tags as a small array.
19439         This prevents us from hitting a limitation during the debug info
19440         generation when using stabs.
19441
19442         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
19443         small array.
19444         This prevents us from hitting a limitation during the debug info
19445         generation when using stabs.
19446
19447 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
19448
19449         lang-specs.h: Remove -gnatz* from specs.
19450
19451 2004-05-03  Vincent Celier  <celier@gnat.com>
19452
19453         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
19454
19455         * Make-lang.in, Makefile.in: Add gprmake
19456
19457 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
19458
19459         * sem_aggr.adb: Fix typo in comment.
19460
19461 2004-05-03  Robert Dewar  <dewar@gnat.com>
19462
19463         * make.adb: Minor reformatting
19464
19465         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
19466
19467         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
19468         so that it works when address is not a private type.
19469
19470         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
19471         properly with rewritten unchecked conversions. This prevents
19472         order-of-elaboration issues that can otherwise arise.
19473         (Minimum_Size): Don't check size of access types under VMS
19474
19475         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
19476         interpretations of integer literals as type System.Address.
19477
19478         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
19479         (Is_Descendent_Of): New function
19480
19481 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
19482
19483         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
19484         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
19485         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
19486
19487         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
19488         of the old Max_Entry_Queue_Depth.
19489
19490         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
19491         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
19492         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
19493
19494         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
19495         New entry for proper handling of Max_Entry_Queue_Depth.
19496         New entry for proper handling of No_Dynamic_Interrupts.
19497
19498         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
19499         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
19500         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
19501         the GNAT specific restriction Max_Entry_Queue_Depth.
19502         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
19503         the GNAT specific restriction No_Dynamic_Interrupts.
19504
19505         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
19506         instead of the old Boolean_Entry_Barriers.
19507         Use the new restriction No_Dynamic_Attachment instead of the old
19508         No_Dynamic_Interrupts.
19509
19510         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
19511         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
19512
19513         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
19514         of the old Max_Entry_Queue_Depth.
19515
19516 2004-05-03  GNAT Script  <nobody@gnat.com>
19517
19518         * Make-lang.in: Makefile automatically updated
19519
19520 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
19521
19522         * checks.adb (Enable_Range_Check): If the prefix of an index component
19523         is an access to an unconstrained array, perform check unconditionally.
19524
19525 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19526
19527         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
19528         Component_Clause.
19529
19530 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
19531
19532         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
19533         alternate stack setting. There was no support for the tasking cases
19534         and the changes eventually caused a number of side-effect failures in
19535         the non-tasking case too.
19536
19537 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
19538
19539         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
19540         -gnats is passed.
19541
19542 2004-04-29  Vincent Celier  <celier@gnat.com>
19543
19544         * make.adb (Gnatmake): Increase max size of argument array for
19545         gnatbind for the potential addition of -F.
19546         If there are Stand-Alone Library projects, invoke gnatbind with -F to
19547         be sure that elaboration flags will be checked.
19548
19549         * switch-c.adb: Correct call to Scan_Pos for -gnateI
19550
19551 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
19552
19553         * sem_warn.adb (Check_References): Move '<access-variable> may be
19554         null' warning out of under Warn_On_No_Value_Assigned.
19555
19556 2004-04-29  Ed Falis  <falis@gnat.com>
19557
19558         * gnat_ugn.texi: Fixed texi error
19559
19560 2004-04-29  Robert Dewar  <dewar@gnat.com>
19561
19562         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
19563         abstract operations if they come from predefined files.
19564
19565         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
19566         Dynamic, not RM).
19567
19568         * s-addope.adb: Correct obvious error in mod function
19569
19570 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
19571
19572         * Makefile.in: Add target pairs for powerpc darwin*
19573         tasking support.
19574
19575         * a-intnam-darwin.ads, s-osinte-darwin.adb,
19576         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
19577
19578 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
19579
19580         * Makefile.in: Add target macro definitions for s390*-linux*.
19581         * system-linux-s390.ads: New file.
19582         * system-linux-s390x.ads: New file.
19583
19584 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
19585
19586         * gnat_ugn.texi: Correct argument to @setfilename.
19587
19588 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
19589
19590         * a-exexpr.adb (Unwind_Word): New data type.
19591         (Unwind_Exception): Use it as type of Private1 and Private2.
19592
19593         * raise.c (db_action_for): Fix debug printf.
19594
19595 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
19596
19597         * a-wtmoio.ads: Formal type must be a modular type, not a signed
19598         integer type.
19599
19600 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19601
19602         * decl.c (gnat_to_gnu_entity, case object): Call
19603         __builtin_update_setjmp_buf.
19604
19605         * gigi.h (update_setjmp_buf): Deleted.
19606         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
19607
19608         * misc.c: (update_setjmp_buf): Deleted.
19609
19610         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
19611         around block of RTL.
19612
19613         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
19614
19615 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
19616
19617         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
19618         subprogram for which no pragma All_Calls_Remote applies, store the
19619         address of the real subprogram in the underlying record type, so local
19620         dereferences do not go through the PCS.
19621
19622 2004-04-26  Robert Dewar  <dewar@gnat.com>
19623
19624         * i-c.ads: Add some type qualifications to avoid ambiguities when
19625         compiling with s-auxdec.ads and a non-private address type.
19626
19627 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
19628
19629         * Makefile.rtl: Fix error in previous check-in:
19630         Add s-addope.o to non tasking object list (rather than tasking object
19631         list).
19632
19633 2004-04-26  Javier Miranda  <miranda@gnat.com>
19634
19635         * sem_aggr.adb: Fix typo in comments
19636         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
19637         Required to check the null-exclusion attribute.
19638
19639         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
19640         case of anonymous access types in record and array components. For a
19641         component definition the level is the same of the enclosing composite
19642         type.
19643
19644         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
19645         that are anonymous access types the level of accessibility depends on
19646         the enclosing type declaration. In order to have this information, set
19647         the scope of the anonymous access type to the enclosing record type
19648         declaration.
19649         (Array_Type_Declaration): In case of components that are anonymous
19650         access types the level of accessibility depends on the enclosing type
19651         declaration. In order to have this information, set the scope of the
19652         anonymous access type to the enclosing array type declaration.
19653
19654         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
19655         access type.
19656
19657         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
19658         renaming of anonymous access-to-constant types allowed if and only if
19659         the renamed object is access-to-constant.
19660
19661         * sem_util.adb (Type_Access_Level): In case of anonymous access types
19662         that are component_definition or discriminants of a nonlimited type,
19663         the level is the same as that of the enclosing component type.
19664
19665 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
19666
19667         * sem_elim.adb: Some minor code reorganization from code reading. Fix
19668         misprint in the function name (File_Name_Match).
19669
19670 2004-04-23  Laurent GUERBY <laurent@guerby.net>
19671
19672         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
19673         install.
19674
19675 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
19676
19677         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
19678
19679 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
19680
19681         * adaint.c (__gnat_try_lock): No longer requires that the parent
19682         directory be writable, the directory itself is enough.
19683         (gnat_is_absolute_path): Change profile, so that the call from
19684         GNAT.OS_Lib can be made more efficient.
19685
19686         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
19687         from GNAT.OS_Lib can be made more efficient.
19688
19689         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
19690         one copy of the file name. Found by code reading.
19691
19692 2004-04-23  Vincent Celier  <celier@gnat.com>
19693
19694         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
19695         Correct documentation on gnatmake switches transmitted to the compiler
19696
19697         * ali.ads: Minor comment fix
19698
19699 2004-04-23  Javier Miranda  <miranda@gnat.com>
19700
19701         * sem_ch6.adb: (Confirming Types): Code cleanup
19702
19703         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
19704         subprogram types: E_Anonymous_Access_Subprogram_Type and
19705         E_Anonymous_Access_Protected_Subprogram_Type.
19706
19707 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
19708
19709         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
19710         whether a pragma All_Calls_Remote applies to the subprogram on which
19711         'Access is taken.
19712         No functional change is introduced by this revision; the new parameter
19713         will be used to allow calls to local RCI subprograms to be optimized
19714         to not use the PCS in the case where no pragma All_Calls_Remote applies,
19715         as is already done in the PolyORB implementation of the DSA.
19716
19717         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
19718         whether a pragma All_Calls_Remote applies to the subprogram on which
19719         'Access is taken.
19720         No functional change is introduced by this revision; the new parameter
19721         will be used to allow calls to local RCI subprograms to be optimized
19722         to not use the PCS in the case where no pragma All_Calls_Remote applies,
19723         as is already done in the PolyORB implementation of the DSA.
19724
19725 2004-04-23  Robert Dewar  <dewar@gnat.com>
19726
19727         * Makefile.rtl: Add entry for s-addope.o in run time library list
19728         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
19729         * s-addope.ads, s-addope.adb: New files.
19730
19731         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
19732         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
19733         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
19734         System.Address to be non-private and signed.
19735
19736         * sem_elim.adb: Minor reformatting (fairly extensive)
19737         Some minor code reorganization from code reading
19738         Add a couple of ??? comments
19739
19740 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19741
19742         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
19743         (tree_transform, case N_If_Statement): Remove non-determinism.
19744
19745         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
19746
19747 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
19748
19749         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
19750         Eliminate' section.
19751
19752         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
19753         no longer used as a parameter name for Eliminate pragma).
19754
19755 2004-04-22  Laurent GUERBY <laurent@guerby.net>
19756
19757         PR optimization/14984
19758         PR optimization/14985
19759         * trans.c (gigi): Fix non determinism leading to bootstrap
19760         comparison failures.
19761
19762 2004-04-21  Pascal Obry  <obry@gnat.com>
19763
19764         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
19765         passed to spawnvp() to properly handle program pathname with spaces on
19766         Win32.
19767
19768 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
19769
19770         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
19771         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
19772         unlocked in case of exceptions.
19773
19774 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
19775
19776         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
19777         This function does not exist anymore.
19778
19779 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
19780
19781         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
19782
19783         * link.c: Move variables to the __gnat name space.
19784
19785         * Makefile.in: list link.o explicitly when needed.
19786
19787         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
19788
19789 2004-04-21  Javier Miranda  <miranda@gnat.com>
19790
19791         * einfo.adb (Original_Access_Type): New subprogram
19792         (Set_Original_Access_Type): New subprogram
19793         (Write_Field21_Name): Write the name of the new field
19794
19795         * einfo.ads (Original_Access_Type): New field present in access to
19796         subprogram types.
19797         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
19798         E_Anonymous_Access_Protected_Subprogram_Type.
19799
19800         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
19801         subprogram types.
19802
19803         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
19804         to anonymous access to subprogram types.
19805
19806         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
19807         to subprogram types.
19808
19809         * sem_ch3.adb (Access_Definition): Complete decoration of entities
19810         corresponding to anonymous access to subprogram types.
19811         (Analyze_Component_Declaration): Add new actual to the call to
19812         subprogram replace_anonymous_access_to_protected_subprogram.
19813         (Array_Type_Declaration): Add new actual to the call to subprogram
19814         replace_anonymous_access_to_protected_subprogram.
19815         (Process_Discriminants): Add new actual to the call to subprogram
19816         replace_anonymous_access_to_protected_subprogram.
19817         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
19818
19819         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
19820         formal.
19821
19822         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
19823         access to subprogram types.
19824
19825         * sem_util.adb (Has_Declarations): Addition of package_specification
19826         nodes.
19827
19828 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
19829
19830         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
19831         inlined flags to renamed entity only if in current unit.
19832
19833 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
19834
19835         * s-parint.ads: Add DSA implementation marker.
19836
19837         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
19838         value of System.Partition_Interface.DSA_Implementation to determine
19839         what version of the distributed systems annex is available (no
19840         implementation, GLADE, or PolyORB).
19841
19842 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
19843
19844         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
19845
19846 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19847
19848         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
19849         with new type if alias sets differ.
19850         Fixes ACATS c41103b.
19851
19852 2004-04-21  Vincent Celier  <celier@gnat.com>
19853
19854         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
19855         Add array Lang_Args for the language specific compiling argument
19856         switches.
19857
19858         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
19859
19860 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
19861
19862         * gnat_rm.texi: Update the descripton of the Eliminate pragma
19863         according to the recent changes in the format of the parameters of the
19864         pragma (replacing Homonym_Number with Source_Location).
19865
19866 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
19867
19868         * 5isystem.ads: Removed, unused.
19869
19870         * gnat_rm.texi: Redo 1.13 change.
19871
19872 2004-04-19  Robert Dewar  <dewar@gnat.com>
19873
19874         * s-stoele.ads: Clean up definition of Storage_Offset (the new
19875         definition is cleaner, avoids the kludge of explicit Standard operator
19876         references, and also is consistent with a visible System.Address with
19877         no visible operations.
19878
19879         * s-geveop.adb: Add declarations to avoid assumption of visible
19880         operations on type System.Address (since these might not be available
19881         if Address is a non-private type for which the operations
19882         are made abstract).
19883
19884         * sem_eval.adb: Minor reformatting
19885
19886         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
19887         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
19888         reformatting (new function spec format).
19889
19890         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
19891         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
19892         s-caun64.adb: Add declarations to avoid assumption of visible
19893         operations on type System.Address (since these might not be available
19894         if Address is a non-private type for which the operations are made
19895         abstract).
19896
19897         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
19898
19899         * exp_intr.adb: Minor comment update
19900
19901         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
19902
19903         * 5omastop.adb: Add declarations to avoid assumption of visible
19904         operations on type System.Address (since these might not be available
19905         if Address is a non-private type for which the operations
19906         are made abstract).
19907
19908 2004-04-19  Vincent Celier  <celier@gnat.com>
19909
19910         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
19911
19912         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
19913         defaulted to Ada.
19914
19915         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
19916         defaulted to Ada.
19917         Call Check with Process_Languages.
19918         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
19919         with Process_Languages.
19920         (Recursive_Check): New Boolean parameter Process_Languages. Call
19921         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
19922         Process_Languages.
19923
19924         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
19925
19926         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
19927         parameter Ada_Main, defaulted to True.
19928         Check for Ada specific characteristics only when Ada_Main is True.
19929
19930         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
19931
19932         * prj.adb: (Project_Empty): Add new Project_Data components.
19933
19934         * prj.ads: New types and tables for non Ada languages.
19935         (Project_Data): New components Languages, Impl_Suffixes,
19936         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
19937         Include_Path, Include_Data_Set.
19938
19939         * prj-env.ads, prj-env.adb: Minor reformatting
19940
19941         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
19942         Put subprograms in alphabetical order
19943
19944         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
19945         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
19946         Opt.Follow_Links.
19947
19948         * mlib-prj.adb: Back out modification in last version, as they are
19949         incorrect.
19950         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
19951
19952         * make.adb: (Mains): Moved to package Makeutl
19953         (Linker_Opts): Moved to package Makeutl
19954         (Is_External_Assignment): Moved to package Makeutl
19955         (Test_If_Relative_Path): Moved to package Makeutl
19956         (Gnatmake): Move sorting of linker options to function
19957         Makeutl.Linker_Options_Switches.
19958
19959         * makeutl.ads, makeutl.adb: New files.
19960
19961         * Makefile.in: Add makeutl.o to the object files for gnatmake
19962
19963         * makeusg.adb: Add line for new switch -eL.
19964
19965         * gnatls.adb (Image): New function.
19966         (Output_Unit): If in verbose mode, output the list of restrictions
19967         specified by pragmas Restrictions.
19968
19969         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
19970         Text_IO.
19971
19972         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
19973         needed, to put it in the range 1970 (included) - 2026 (excluded).
19974         (Time_Of): Do not shift Unix_Min_Year (1970).
19975         Shift the date by multiple of 56 years, if needed, to put it in the
19976         range 1970 (included) - 2026 (excluded).
19977
19978         * adaint.h, adaint.c (__gnat_set_executable): New function.
19979
19980 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19981
19982         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
19983         and pop GC context.
19984         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
19985         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
19986         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
19987         (tree_transform, case N_Code_Statement): Likewise.
19988         (gnat_expand_stmt, case LABEL_STMT): Don't look at
19989         LABEL_STMT_FIRST_IN_EH.
19990         (gnat_expand_stmt, case ASM_STMT): New case.
19991
19992         * utils2.c (build_unary_op): Properly set TREE_READONLY of
19993         UNCONSTRAINED_ARRAY_REF.
19994
19995         * utils.c (poplevel): Temporarily push/pop GC context around inline
19996         function expansion.
19997
19998         * decl.c (maybe_variable): Properly set TREE_READONLY of
19999         UNCONSTRAINED_ARRAY_REF.
20000         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
20001
20002         * ada-tree.def: (ASM_STMT): New.
20003
20004         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
20005         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
20006         ASM_STMT_INPUT): New.
20007         (ASM_STMT_CLOBBER): Likewise.
20008
20009 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
20010
20011         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
20012         general rcheck mechanism to raise Program_Error for E.4(18), instead
20013         of a custom raiser in System.Partition_Interface.
20014         Part of general cleanup work before PolyORB integration.
20015
20016         * snames.ads, snames.adb: Add new runtime library entities and names
20017         for PolyORB DSA.
20018
20019         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
20020         exp_dist.
20021         (Build_Subprogram_Id): New subprogram provided by exp_dist
20022         Code reorganisation in preparation for PolyORB integration.
20023
20024         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
20025         exp_dist.
20026         (Build_Subprogram_Id): New subprogram provided by exp_dist
20027
20028         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
20029         actual parameter types for call to dereference of an
20030         access-to-subprogram type.
20031
20032         * rtsfind.ads: Add new runtime library entities and names for PolyORB
20033         DSA.
20034
20035         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
20036         instead, which has the same behaviour here since we never pass it a
20037         NULL pointer.
20038
20039         * link.c (run_path_option, Solaris case): Use -Wl, as for other
20040         platforms.
20041
20042         * Makefile.in: adjust object file lists for gnatlink and gnatmake
20043         to account for new dependency upon Interfaces.C.Strings + link.o
20044         For x86 FreeBSD, use 86numaux.
20045
20046         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
20047         from Mlib.Tgt to Mlib.
20048
20049         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
20050         target-independent.
20051
20052         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
20053         target-specific versions of this subprogram, now implemented as a
20054         target-independent function in Mlib.
20055
20056         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
20057         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
20058         (Linker_Library_Path_Option): Remove target-specific versions of this
20059         subprogram, now implemented as a target-independent function in Mlib.
20060
20061         * atree.adb: (Allocate_Initialize_Node): New subprogram.
20062         Factors out node table slots allocation.
20063         (Fix_Parents): New subprogram.
20064         Encapsulate the pattern of fixing up parent pointers for syntactic
20065         children of a rewritten node.
20066         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
20067         (Rewrite): Use New_Copy when creating saved copy of original node.
20068         (Replace): Use Copy_Node to copy nodes.
20069
20070 2004-04-19  Javier Miranda  <miranda@gnat.com>
20071
20072         * sprint.adb (Sprint_Node_Actual): Give support to the new
20073         Access_To_Subprogram node available in Access_Definition nodes. In
20074         addition, give support to the AI-231 node fields: null-exclusion,
20075         all-present, constant-present.
20076
20077         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
20078
20079         * sinfo.ads, sinfo.adb:
20080         New field Access_To_Subprogram_Definition in Access_Definition nodes
20081
20082         * sem_ch6.adb (Process_Formals): Move here the code that creates and
20083         decorates internal subtype declaration corresponding to the
20084         null-excluding formal. This code was previously in Set_Actual_Subtypes.
20085         In addition, carry out some code cleanup on this code. In case of
20086         access to protected subprogram call
20087         Replace_Anonymous_Access_To_Protected_Subprogram.
20088         (Set_Actual_Subtypes): Code cleanup.
20089
20090         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
20091         Find_Type in case of anonymous access renamings. Add warning in case of
20092         null-excluding attribute used in anonymous access renaming.
20093
20094         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
20095         subprogram
20096
20097         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
20098         subprogram.
20099         (Access_Definition): In case of anonymous access to subprograms call
20100         the corresponding semantic routine to decorate the node.
20101         (Access_Subprogram_Declaration): Addition of some comments indicating
20102         some code that probably should be added here. Detected by comparison
20103         with the access_definition subprogram.
20104         (Analyze_Component_Declaration): In case of access to protected
20105         subprogram call Replace_Anonymous_Access_To_Protected.
20106         (Array_Type_Declaration): In case of access to protected subprogram call
20107         Replace_Anonymous_Access_To_Protected_Subprogram.
20108         (Process_Discriminants): In case of access to protected subprogram call
20109         Replace_Anonymous_Access_To_Protected_Subprogram.
20110
20111         * par.adb (P_Access_Definition): New formal that indicates if the
20112         null-exclusion part was present.
20113         (P_Access_Type_Definition): New formal that indicates if the caller has
20114         already parsed the null-excluding part.
20115
20116         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
20117         (P_Identifier_Declarations): Code cleanup and give support to renamings
20118         of anonymous access to subprogram types.
20119         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
20120         (P_Array_Type_Definition): Give support to AI-254.
20121         (P_Component_Items): Give support to AI-254.
20122         (P_Access_Definition): New formal that indicates if the header was
20123         already parsed by the caller.
20124         (P_Access_Type_Definition): New formal that indicates if the caller has
20125         already parsed the null-excluding part.
20126
20127         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
20128         call to P_Access_Definition.
20129
20130 2004-04-19  Geert Bosch  <bosch@gnat.com>
20131
20132         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
20133         the delicate semantics of floating-point to integer conversion.
20134         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
20135
20136         * eval_fat.adb (Machine_Mantissa): Moved to spec.
20137         (Machine_Radix): New function.
20138
20139         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
20140         conversion checks.
20141         (Machine_Radix): New function also for use in conversion checks.
20142
20143 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
20144
20145         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
20146
20147         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
20148         to decorate the access-to-protected subprogram and the equivalent type.
20149
20150         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
20151         to anonymous access to subprogram types.
20152
20153         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
20154         constant-folding, for legality checks in contexts that require an RM
20155         static expression.
20156
20157         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
20158         temporary but stack checking is not enabled, increment serial number
20159         to so that symbol generation is consistent with and without stack
20160         checking.
20161
20162         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
20163         independent on whether stack checking is enabled, caller must check
20164         the corresponding flag.
20165
20166         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
20167         range checks.
20168         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
20169         parent if it has discriminants.
20170         (Build_Derived_Private_Type): Constructed full view does
20171         not come from source.
20172         (Process_Discriminants): Default discriminants on a tagged type are
20173         legal if this is the internal completion of a private untagged
20174         derivation.
20175
20176         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
20177         no constraint checks, because it corresponds to an existing object.
20178
20179         * sem_prag.adb (Process_Convention): Pragma applies
20180         only to subprograms in the same declarative part, i.e. the same unit,
20181         not the same scope.
20182
20183         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
20184         ignore type mismatch on a numeric conversion if expression comes from
20185         expansion.
20186
20187 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
20188
20189         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
20190         Homonym_Number parameter, add processing for Source_Location parameter
20191         corresponding.
20192         (Check_Eliminated): Remove the check for homonym numbers, add the check
20193         for source location traces.
20194
20195         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
20196         with Arg_Source_Location corresponding to the changes in the format of
20197         the pragma.
20198
20199         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
20200         Eliminate pragma corresponding to the changes in the format of the
20201         pragma: Homonym_Number is replaced with Source_Location, two ways of
20202         distinguishing homonyms are mutially-exclusive.
20203
20204 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
20205
20206         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
20207
20208         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
20209         No_Dollar_In_Label, no longer necessary, as it is always True.
20210         (Strip_Suffixes): Likewise.
20211
20212 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
20213
20214         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
20215         modulus for compatibility with size clause on targets with 16-bit
20216         Integer.
20217
20218         * layout.adb (Discrimify): In the case of private types, set Vtyp to
20219         full type to fix type mismatches on calls to size functions for
20220         discriminant-dependent array components.
20221
20222 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
20223
20224         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
20225         lib.
20226
20227 2004-04-19  Pascal Obry  <obry@gnat.com>
20228
20229         * mdll-utl.adb (Locate): New version is idempotent.
20230
20231 2004-04-17  Laurent Guerby <laurent@guerby.net>
20232
20233         PR ada/14988 (partial)
20234         * impunit.adb: Fix typo.
20235
20236 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
20237
20238         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
20239         and install-rts-cert targets.  Remove all gnatlib and gnattools
20240         targets and all other rts-* targets (moved to libada).  Remove (now)
20241         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
20242         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
20243
20244 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20245
20246         * trans.c (tree_transform): Shortcut returning error_mark_node for
20247         statements in annotate_only_mode.
20248         (tree_transform, case N_Label, case N_Return_Statement,
20249         N_Goto_Statement): Make statement tree instead of generating code.
20250         (tree_transform, case N_Assignment_Statement): No longer check
20251         type_annotate_only.
20252         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
20253         RETURN_STMT): New.
20254         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
20255         New fcns.
20256         (gnat_to_gnu): Collect any RTL generated and deal with it.
20257         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
20258         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
20259         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
20260
20261         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
20262
20263         * ada-tree.def (EXPR_STMT): Fix typo in name.
20264         (BLOCK_STMT, IF_STMT): New nodes.
20265
20266         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
20267         LABEL_STMT_FIRST_IN_EH): New macros.
20268         (RETURN_STMT_EXPR): Likewise.
20269
20270         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
20271         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
20272
20273 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
20274
20275         * atree.ads: Correct documentation on extended nodes.
20276
20277         * link.c: Set run_path_option for FreeBSD.
20278
20279 2004-04-08  Vincent Celier  <celier@gnat.com>
20280
20281         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
20282         one of the ALI file, do not link with DEC lib.
20283
20284         * par.adb Remove the last two characters ("%s" or "%b") when checking
20285         if a language defined unit may be recompiled.
20286
20287 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
20288
20289         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
20290         removal of abstract operation leaves no possible interpretation for
20291         expression.
20292
20293         * sem_eval.adb (Eval_Qualified_Expression): Use
20294         Set_Raises_Constraint_Error on node when needed, so that it does not
20295         get optimized away by subsequent optimizations.
20296
20297         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
20298         operands even when they are not wrapped in a type conversion.
20299
20300 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
20301
20302         * sem_prag.adb (Set_Exported): Warn about making static as result of
20303         export only when the export is coming from source. This may be not
20304         be true e.g. on VMS where we expand export pragmas for exception codes
20305         together with imported or exported exceptions, and we don't want the
20306         user to be warned about something he didn't write.
20307
20308 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
20309
20310         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
20311         duplication between normal entities and those declared as renamings.
20312         No functional change.
20313
20314         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
20315         inline functions returning an unconstrained result.
20316
20317 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
20318
20319         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
20320         conform to what other front-ends do.
20321
20322 2004-04-08  Doug Rupp  <rupp@gnat.com>
20323
20324         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
20325         libraries.
20326
20327 2004-04-06  Pascal Obry  <obry@gnat.com>
20328
20329         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
20330
20331         * osint.adb (Program_Name): Do not look past a directory separator.
20332
20333 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
20334
20335         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
20336
20337         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
20338         requirement for preserving a copy of the original assignment node.
20339
20340         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
20341
20342 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
20343
20344         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
20345         when supported.
20346
20347 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
20348
20349         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
20350         operator calls in functional notation, and apply
20351         Universal_Interpretation to operands, not to their type.
20352
20353 2004-04-06  Robert Dewar  <dewar@gnat.com>
20354
20355         * 5wdirval.adb: Minor reformatting
20356
20357 2004-04-06  Ed Falis  <falis@gnat.com>
20358
20359         * gnat_rm.texi: Improve a reference to the GCC manual
20360
20361 2004-04-05  Vincent Celier  <celier@gnat.com>
20362
20363         * adaint.h, adaint.c: Add function __gnat_named_file_length
20364
20365         * impunit.adb: Add Ada.Directories to the list
20366
20367         * Makefile.in: Add VMS and Windows versions of
20368         Ada.Directories.Validity package body.
20369
20370         * Makefile.rtl: Add a-direct and a-dirval
20371
20372         * mlib-tgt.ads: Minor comment update.
20373
20374         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
20375         a-direct.ads, a-direct.adb: New files.
20376
20377 2004-04-05  Vincent Celier  <celier@gnat.com>
20378
20379         PR ada/13620
20380         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
20381         just to the compiler.
20382
20383 2004-04-05  Robert Dewar  <dewar@gnat.com>
20384
20385         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
20386         returned string is 1.
20387
20388         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
20389
20390         * eval_fat.ads: Minor reformatting
20391
20392         * g-curexc.ads: Document that lower bound of returned string values
20393         is always one.
20394
20395         * gnatlink.adb: Add ??? comment for previous change
20396         (need to document why this is VMS specific)
20397
20398         * s-stoele.ads: Minor reformatting
20399
20400         * tbuild.ads: Minor reformatting throughout (new function specs)
20401
20402         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
20403         after WITH.
20404
20405         * scng.adb: Minor reformatting
20406
20407 2004-04-05  Geert Bosch  <bosch@gnat.com>
20408
20409         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
20410         (Leading_Part): Still perform truncation to machine number if the
20411         specified radix_digits is greater or equal to machine_mantissa.
20412
20413 2004-04-05  Javier Miranda  <miranda@gnat.com>
20414
20415         * par-ch3.adb: Complete documentation of previous change
20416         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
20417         (aliased must appear before constant).
20418
20419         * par-ch4.adb: Complete documentation of previous change.
20420
20421         * par-ch6.adb: Complete documentation of previous change.
20422
20423         * sinfo.ads: Fix typo in commment.
20424
20425 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
20426
20427         * sem_ch3.adb (Inherit_Components): If derived type is private and has
20428         stored discriminants, use its discriminants to constrain parent type,
20429         as is done for non-private derived record types.
20430
20431         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
20432         Ada 2005 AI-310: an abstract non-dispatching operation is not a
20433         candidate interpretation in an overloaded call.
20434
20435         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
20436         expression is Null and target type is not an access type (e.g. a
20437         non-private address type).
20438
20439 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
20440
20441         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
20442         statement whose right-hand side is an inlined call, save a copy of the
20443         original assignment subtree to preserve enough consistency for
20444         Analyze_Assignment to proceed.
20445
20446         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
20447         complete assignment subtree which is now unnecessary, as the expansion
20448         of inlined call has been improved to preserve a consistent assignment
20449         tree.  Note_Possible_Modification must be called only
20450         after checks have been applied, or else unnecessary checks will
20451         be generated.
20452
20453         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
20454         of explicit dereferences that do not Come_From_Source:
20455          - be selective on cases where we must go back to the dereferenced
20456            pointer (an assignment to an implicit dereference must not be
20457            recorded as modifying the pointer);
20458          - do not rely on Original_Node being present (Analyze_Assignment
20459            calls Note_Possible_Modification on a copied tree).
20460
20461         * sem_warn.adb (Check_References): When an unset reference to a pointer
20462         that is never assigned is encountered, prefer '<pointer> may be null'
20463         warning over '<pointer> is never assigned a value'.
20464
20465 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
20466
20467         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
20468         the ABI.
20469
20470 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
20471
20472         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
20473         libexc. We currently don't reference anything in this library and
20474         linking it in triggers linker warnings we don't want to see.
20475
20476         * init.c: Update comments.
20477
20478 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20479
20480         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
20481         * utils.c (create_field_decl): Likewise.
20482         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
20483
20484 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
20485
20486         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
20487         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
20488         Add info directory entry and category.
20489
20490 2004-04-02  Jan Hubicka  <jh@suse.cz>
20491
20492         * utils.c: Include function.h
20493         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
20494
20495 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
20496
20497         PR ada/14150
20498         * Make-lang.in: Clean up generation of documentation
20499
20500         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
20501
20502         * xgnatug.adb: Removed, replaced by xgnatugn.adb
20503
20504         * xgnatugn.adb: Replaces xgnatug.adb
20505
20506         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
20507
20508         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
20509
20510         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
20511         gnat_ug_wnt.texi: Removed.
20512
20513 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
20514
20515         * utils2.c: Update copyright notice.
20516
20517 2004-04-01  Robert Dewar  <dewar@gnat.com>
20518
20519         * checks.adb: Minor reformatting throughout
20520         Note that prev checkin added RM reference to alignment warning
20521
20522 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
20523
20524         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
20525         non-static when building aggregate for bit-packed array.
20526
20527         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
20528         function call that is itself the actual in a procedure call, build
20529         temporary for it.
20530
20531         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
20532         a string literal, create a temporary for it, constant folding only
20533         handles scalars here.
20534
20535 2004-04-01  Vincent Celier  <celier@gnat.com>
20536
20537         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
20538         Error_Msg_SP): New empty procedures to instantiate the Scanner.
20539         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
20540         tokens.
20541         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
20542         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
20543         and get the checksum.
20544
20545         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
20546         already in the Q.
20547         Increase the Marking_Label at the end of the Multiple_Main_Loop,
20548         instead of at the beginning.
20549
20550         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
20551         directly.
20552         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
20553         on VMS.
20554
20555         * osint.ads (Multi_Unit_Index_Character): New Character global variable
20556
20557         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
20558         not '~' directly.
20559
20560         * par.adb: Remove test on file name to detect language defined units.
20561         Add test on unit name, after parsing, to detect language defined units
20562         that are not compiled with -gnatg (except System.RPC and its children)
20563
20564         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
20565         following units without style checking.
20566
20567         * switch-c.adb: Change -gnatC to -gnateI
20568
20569         * usage.adb: Document new switch -gnateInnn
20570
20571         * scng.adb (Accumulate_Token_Checksum): New procedure
20572         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
20573         word or literal number.
20574         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
20575         numbers.
20576
20577 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
20578
20579         * a-tasatt.adb,
20580         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
20581         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
20582         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
20583         5vtpopde.adb: Add missing 'constant' keywords.
20584
20585 2004-04-01  Javier Miranda  <miranda@gnat.com>
20586
20587         * par-ch4.adb: (P_Allocator): Code cleanup
20588
20589         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
20590         attribute.
20591
20592         * sinfo.ads: Complete documentation of previous change
20593
20594 2004-04-01  Pascal Obry  <obry@gnat.com>
20595
20596         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
20597         only on VMS.  This special handling was done because an old GNU/ld bug
20598         on Windows which has been fixed.
20599
20600 2004-04-01  GNAT Script  <nobody@gnat.com>
20601
20602         * Make-lang.in: Makefile automatically updated
20603
20604 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20605
20606         * decl.c (gnat_to_gnu_entity, make_type_from_size):
20607         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
20608         * trans.c (tree_transform, convert_with_check): Likewise.
20609         * utils.c (gnat_signed_or_unsigned_type): Likewise.
20610         (build_vms_descriptor, unchecked_convert): Likewise.
20611         * utils2.c (nonbinary_modular_operation): Likewise.
20612
20613 2004-03-29  Javier Miranda  <miranda@gnat.com>
20614
20615         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
20616         (Install_Null_Excluding_Check): Local subprogram that determines whether
20617         an access node requires a runtime access check and if so inserts the
20618         appropriate run-time check.
20619         (Apply_Access_Check): Call Install_Null_Excluding check if required
20620         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
20621
20622         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
20623
20624         * einfo.ads: Fix typo in comment
20625
20626         * exp_ch3.adb (Build_Assignment): Generate conversion to the
20627         null-excluding type to force the corresponding run-time check.
20628         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
20629         type to force the corresponding run-time check.
20630
20631         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
20632         the null-excluding type to force the corresponding run-time check.
20633
20634         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
20635         case of access types unless they have the null-excluding attribute.
20636
20637         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
20638         part.
20639
20640         * exp_util.ads: Fix typo in comment
20641
20642         * par.adb (P_Null_Exclusion): New subprogram
20643         (P_Subtype_Indication): New formal that indicates if the null-excluding
20644         part has been scanned-out and it was present
20645
20646         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
20647
20648         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
20649         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
20650         type to force the corresponding run-time check
20651         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
20652         components
20653         (Resolve_Array_Aggregate): Carry out some static checks
20654         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
20655
20656         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
20657         attribute must be set only if specified by means of the null-excluding
20658         part. In addition, we must also propagate the access-constant attribute
20659         if present.
20660         (Access_Subprogram_Declaration, Access_Type_Declaration,
20661         Analyze_Component_Declaration, Analyze_Object_Declaration,
20662         Array_Type_Declaration, Process_Discriminants,
20663         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
20664         and carry out some static checks.
20665         (Build_Derived_Access_Type): Set the null-excluding attribute
20666         (Derived_Type_Declaration, Process_Subtype): Carry out some static
20667         checks.
20668
20669         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
20670
20671         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
20672
20673         * sem_ch6.adb (Process_Formals): Carry out some static checks.
20674         (Set_Actual_Subtypes): Generate null-excluding subtype if the
20675         null-excluding part was present; it is not required to be done here in
20676         case of anonymous access types.
20677         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
20678         value.
20679
20680         * sem_res.adb (Resolve_Actuals): Carry out some static check
20681         (Resolve_Null): Allow null in anonymous access
20682
20683         * sinfo.adb: New subprogram Null_Exclusion_Present
20684         All_Present and Constant_Present available on access_definition nodes
20685
20686         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
20687         object_declaration, derived_type_definition, component_definition,
20688         discriminant_specification, access_to_object_definition,
20689         access_function_definition, allocator, access_procedure_definition,
20690         access_definition, parameter_specification, All_Present and
20691         Constant_Present flags available on access_definition nodes.
20692
20693 2004-03-29  Robert Dewar  <dewar@gnat.com>
20694
20695         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
20696         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
20697         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
20698         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
20699         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
20700         sem_prag.adb: Updates to handle multiple units/file
20701
20702         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
20703
20704         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
20705         sem_util.adb: Minor reformatting
20706
20707         * sem_ch12.adb: Add comment for previous change
20708
20709 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
20710
20711         * osint.adb (Executable_Prefix): Set Exec_Name to the current
20712         executable name when not initialized. Otherwise, use its current value.
20713
20714         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
20715         initialize it to another executable name than the current one. This
20716         allows to configure paths for an executable name (gnatmake) different
20717         from the current one (gnatdist).
20718
20719 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
20720
20721         * exp_ch6.adb (Expand_Call): A call to a function declared in the
20722         current unit cannot be inlined if it appears in the body of a withed
20723         unit, to avoid order of elaboration problems in gigi.
20724
20725         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
20726         information for protected (wrapper) operation as well, to simplify gdb
20727         use.
20728
20729         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
20730         protected body, indicate that the entity for the generated spec comes
20731         from source, to ensure that references are properly generated for it.
20732         (Build_Body_To_Inline): Do not inline a function that returns a
20733         controlled type.
20734
20735         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
20736         apply convention to homonyms that are declared explicitly.
20737
20738         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
20739         that renames an equality operator and the operands are overloaded,
20740         resolve them with the declared formal types, before rewriting as an
20741         operator.
20742
20743 2004-03-29  GNAT Script  <nobody@gnat.com>
20744
20745         * Make-lang.in: Makefile automatically updated
20746
20747 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
20748
20749         * memtrack.adb: Log realloc calls, which are treated as free followed
20750         by alloc.
20751
20752 2004-03-25  Vincent Celier  <celier@gnat.com>
20753
20754         * prj-makr.adb (Process_Directories): Detect when a file contains
20755         several units. Do not include such files in the config pragmas or
20756         in the naming scheme.
20757
20758         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
20759         Resolve links only when not in Trusted_Mode.
20760         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
20761         Do not resolve links for the display names.
20762
20763         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
20764         resolve links when computing the display names.
20765
20766 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
20767
20768         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
20769         attribute reference does not denote a subtype, it can be any
20770         expression that has a classwide type, potentially after an implicit
20771         dereference.  In particular, the prefix can be a view conversion for
20772         a classwide type (for which Is_Object_Reference holds), but it can
20773         also be a value conversion for an access-to-classwide type. In the
20774         latter case, there is an implicit dereference, and the original node
20775         for the prefix does not verify Is_Object_Reference.
20776
20777         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
20778         conversion of a discriminant-dependent component of a mutable object
20779         is one itself.
20780
20781 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
20782
20783         * freeze.adb (Freeze_Entity): When an inherited subprogram is
20784         inherited, has convention C, and has unconstrained array parameters,
20785         place the corresponding warning on the derived type declaration rather
20786         than the original subprogram.
20787
20788         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
20789         indication on renaming declaration, if formal has a box and actual
20790         is absent.
20791
20792         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
20793         determine whether to generate an implicit or explicit reference to
20794         the renamed entity.
20795
20796         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
20797         subprogram renaming comes from a defaulted formal subprogram in an
20798         instance.
20799
20800 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
20801
20802         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
20803         value expressions to ensure that calls within a component definition
20804         will be checked (since those are evaluated during the record type's
20805         elaboration).
20806
20807 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
20808
20809         * s-tpobop.adb: Code clean up:
20810         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
20811         code.
20812         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
20813
20814 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
20815
20816         * Makefile.in: Clean up in the ravenscar run time.
20817
20818 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20819
20820         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
20821         of No_Strict_Aliasing to build_pointer_type_for_mode.
20822         * utils.c (update_pointer_to): Walk pointer and ref chains.
20823
20824 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
20825
20826         * ali.ads: Fix Comment about Dynamic_Elab.
20827
20828         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
20829         Has_RACW, Is_Generic, etc.)
20830         (Output_Object, Gnatls): Take into account ALI files not attached to
20831         an object.
20832
20833 2004-03-22  Vincent Celier  <celier@gnat.com>
20834
20835         * gprep.adb: Change all String_Access to Name_Id
20836         (Is_ASCII_Letter): new function
20837         (Double_File_Name_Buffer): New procedure
20838         (Preprocess_Infile_Name): New procedure
20839         (Process_Files): New procedure
20840         (Gnatprep): Check if output and input are existing directories.
20841         Call Process_Files to do the real job.
20842
20843 2004-03-22  Robert Dewar  <dewar@gnat.com>
20844
20845         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
20846         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
20847
20848 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
20849
20850         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
20851         case when the source contains only comments.
20852
20853 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
20854
20855         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
20856         declaration for a child subprogram body that acts as a spec, indicate
20857         that the entity in the declaration needs debugging information.
20858
20859         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
20860         full view if the subtype is created for a constrained record component;
20861         gigi has enough information to construct the record, and there is no
20862         place in the tree for the declaration.
20863
20864         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
20865         serial number for the dummy body that is built for analysis, to avoid
20866         inconsistencies in the generation of internal names when compiling
20867         with -gnatN.
20868
20869 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
20870
20871         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
20872         object.
20873
20874 2004-03-22  GNAT Script  <nobody@gnat.com>
20875
20876         * Make-lang.in: Makefile automatically updated
20877
20878 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20879
20880         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
20881         * trans.c (tree_transform, emit_index_check): Likewise.
20882         * utils.c (build_template): Likewise.
20883         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
20884         (maybe_unconstrained_array, unchecked_convert): Likewise.
20885         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
20886         (build_unary_op): Likewise.
20887         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
20888         (fill_vms_descriptor): Likewise.
20889         (build_call_alloc_dealloc): Likewise.
20890         ALIGN is unsigned.
20891         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
20892
20893 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
20894
20895         PR other/14630
20896         * gnat_ug.texi: Add info directory category and entry.
20897         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
20898         gnat_ug_wnt.texi: Regenerate.
20899
20900 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
20901
20902         * ada-tree.h: Update copyright notice.
20903         Minor reformatting.
20904
20905 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
20906
20907         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
20908         as regular exception objects and not as mere integers representing the
20909         condition code.  The latter approach required some dynamics to mask off
20910         severity bits, which did not fit well into the GCC table based model.
20911         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
20912         exception data objects. We don't it and it would conflict with the other
20913         external symbol we have to generate for such exceptions.
20914
20915         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
20916         the special code for VMS exceptions, since these are now represented
20917         as regular exceptions objects.
20918
20919 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20920
20921         * decl.c (debug_no_type_hash): Remove.
20922         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
20923         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
20924
20925 2004-03-19  Laurent Guerby <laurent@guerby.net>
20926
20927         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
20928         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
20929
20930 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20931
20932         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
20933         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
20934         (TYPE_RM_SIZE_INT): Directly use type.values.
20935         (TREE_LOOP_ID): Clean up check.
20936         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
20937         TYPE_VALUES, not TYPE_FIELDS.
20938         * trans.c (convert_with_check): Delay access of bounds of basetype
20939         until sure is numeric.
20940
20941 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
20942
20943         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
20944
20945         Code clean up:
20946         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
20947         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
20948         Specific.Set instead of direct call to e.g pthread_setspecific.
20949
20950 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
20951
20952         * adaint.c: Update comments.
20953
20954         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
20955         GNATLIB_SHARED for FreeBSD.
20956
20957 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
20958
20959         * init.c [VxWorks]: Do not fix the stack size for the environment task.
20960         When needed (stack checking) the stack size is retrieved
20961         from the VxWorks kernel.
20962
20963         * Makefile.in: Flag -nostdinc is required when building the run time
20964         for avoiding looking for files in the base compiler.
20965         Add the VxWorks specific version of the package body for
20966         System.Stack_checking.Operations (5zstchop.adb).
20967
20968         * Make-lang.in: Add the object file for
20969         System.Stack_Checking.Operations.
20970
20971         * Makefile.rtl: Add object file for the package
20972         System.Stack_Checking.Operations.
20973
20974         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
20975
20976         * s-stache.ads, s-stache.adb: Move the operations related to stack
20977         checking from this package to package System.Stack_Checking.Operations.
20978         This way, stack checking operations are only linked in the final
20979         executable when using the -fstack-check flag.
20980
20981 2004-03-18  Doug Rupp  <rupp@gnat.com>
20982
20983         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
20984         Reorganize ifeq's.
20985
20986         * 5qsystem.ads, 5xcrtl.ads: New files.
20987
20988 2004-03-18  Vincent Celier  <celier@gnat.com>
20989
20990         * prj.adb (Reset): Reset hash table Files_Htable
20991
20992         * prj-env.adb (Source_Paths, Object_Paths): New tables.
20993         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
20994         the procedures Add_To_Path_File.
20995         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
20996         making sure that each directory is present only once and, for object
20997         dirs, when a directory already present is added, the duplicate is
20998         removed and the directory is always put as the last in the table.
20999         Write the path files at the end of these accumulations.
21000
21001         * prj-nmsc.adb (Record_Source): Add source file name in hash table
21002         Files_Htable for all sources.
21003
21004         * prj-proc.adb (Process): Remove restrictions between not directly
21005         related extending projects.
21006
21007 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
21008
21009         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
21010         (Find_Sources): Minor speed optimization.
21011
21012         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
21013         parameter Trusted_Mode.
21014
21015 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
21016
21017         * scn.adb (Determine_License): Take into account a degenerated case
21018         when the source contains only comments.
21019
21020 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
21021
21022         * sem_warn.adb (Check_References): For a warning on a selected
21023         component that does not come from source, locate an uninitialized
21024         component of the record type to produce a more precise error message.
21025
21026 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
21027
21028         * 3zsoccon.ads: Fix multicast options.
21029
21030         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
21031         in the spec.
21032
21033 2004-03-15  Robert Dewar  <dewar@gnat.com>
21034
21035         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
21036         pragma used for a private type.
21037
21038         * lib-xref.adb (Generate_Reference): Do not generate warning if
21039         reference is in a different unit from the pragma Unreferenced.
21040
21041         * 5vtpopde.adb: Minor reformatting
21042         Fix casing of To_Task_ID
21043
21044         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
21045         flag if we have an unchecked conversion to an access type in the same
21046         unit.
21047
21048 2004-03-15  Geert Bosch  <bosch@gnat.com>
21049
21050         * a-ngcoty.adb (Modulus): In alternate formula for large real or
21051         imaginary parts, use Double precision throughout.
21052
21053         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
21054         we want to be able to compile run-time with -gnata for testing, but
21055         this may also be instantiated in user code that is compiled with -gnata.
21056
21057 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
21058
21059         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
21060         codes. Having a separate type for this is useful to enforce consistency
21061         throughout the various run-time units.
21062         (Exception_Data): Use Exception_Code for Import_Code.
21063
21064         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
21065         Natural and Integer in various places.
21066         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
21067         with the severity bits masked off.
21068         (Register_VMS_Exception): Handle the additional exception data pointer
21069         argument.
21070
21071         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
21072         component, now reflected by an exported accessor.
21073         (is_handled_by): New routine to compute whether the propagated
21074         occurrence matches some handler choice specification. Extracted out of
21075         get_action_description_for, and expanded to take care of the VMS
21076         specifities.
21077         (get_action_description_for): Use is_handled_by instead of an explicit
21078         complex condition to decide if the current choice at hand catches the
21079         propagated occurrence.
21080
21081         * raise.h (Exception_Code): New type for C.
21082
21083         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
21084         System.Standard_Library.Exception_Code, to allow references from the
21085         pragma import/export expander.
21086
21087         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
21088         New accessors to allow easy access to GNAT exception data
21089         characteristics.
21090         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
21091         redundant Handled_By_Others component, helper for the personality
21092         routine which will now be able to call the appropriate exception data
21093         accessor instead.
21094
21095         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
21096         component of Standard_Exception_Type to be the closest possible to
21097         Exception_Code in System.Standard_Library, that we cannot get at this
21098         point. Expand a ??? comment to notify that this type node should
21099         probably be rewritten later on.
21100
21101         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
21102         registration call to include a pointer to the exception object in the
21103         arguments.
21104
21105         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
21106         instead of int and explicit bitmasks.
21107
21108 2004-03-15  Vincent Celier  <celier@gnat.com>
21109
21110         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
21111         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
21112
21113         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
21114         longer needed now that it is in the spec of
21115         System.Tasking.Task_Attributes.
21116
21117         * adaint.h, adaint.c: (__gnat_create_output_file): New function
21118
21119         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
21120
21121         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
21122
21123         * make.adb (Gnatmake): Do not check the executable suffix; it is being
21124         taken care of in Scan_Make_Arg.
21125         (Scan_Make_Arg): Add the executable suffix only if the argument
21126         following -o, in canonical case, does not end with the executable
21127         suffix.  When in verbose mode and executable file name does not end
21128         with executable suffix, output the executable name, in canonical case.
21129
21130         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
21131         to avoid warnings when instantiating Ada.Task_Attributes.
21132         Minor reformating.
21133
21134         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
21135         in the correct order.
21136
21137         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
21138         redirect standard output and error to a file for the invocation of the
21139         compiler, then read the file.
21140
21141         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
21142         directory, instead of the Value.
21143         (Find_Source_Dirs): Remove useless code & comments.
21144
21145 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
21146
21147         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
21148         tagged type is inherited, and the parent operation is not frozen yet,
21149         force generation of a freeze node for the inherited operation, so the
21150         corresponding dispatch entry is properly initialized.
21151         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
21152         when looking for user-defined equality operation.
21153
21154         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
21155         boolean when locating primitive equality of tagged component.
21156
21157         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
21158         bit-aligned field and the right-hand side a string literal, introduce
21159         a temporary before expanding assignment into a loop.
21160
21161         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
21162         priority in full, to ensure that any expanded subepxressions of it are
21163         elaborated in the scope of the init_proc.
21164
21165         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
21166         after object declaration, skipping over code that may have been
21167         generated for validity checks.
21168
21169         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
21170         discriminants, ignore the known discriminants of its full view, if
21171         any, to check legality.
21172
21173         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
21174         component if type has unknown discriminants.
21175         (Analyze_Private_Extension_Declaration): Discriminant constraint is
21176         null if type has unknown discriminants.
21177
21178         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
21179         for end label when present.
21180
21181         * s-fileio.adb (Open): When called with a C_Stream, use given name for
21182         temporary file, rather than an empty string.
21183
21184 2004-03-15  Ed Falis  <falis@gnat.com>
21185
21186         * s-thread.adb: Removed, no longer used.
21187
21188 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21189
21190         * decl.c (target.h): Now include.
21191         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
21192         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
21193         (validate_size): For POINTER_TYPE, get smallest size permitted on
21194         machine.
21195
21196         * fe.h: Sort Einfo decls and add Set_Mechanism.
21197
21198         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
21199         (ada/decl.o): Depends on target.h.
21200
21201         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
21202         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
21203
21204 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
21205
21206         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
21207
21208         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
21209         Insert_Dereference_Action when rewriting an implicit dereference into
21210         an explicit one, this will be taken care of during expansion of the
21211         explicit dereference.
21212         (Expand_N_Slice): Same. Always do the rewriting, even for the case
21213         of non-packed slices, since the dereference action generated by
21214         expansion of the explicit dereference is needed in any case.
21215         (Expand_N_Selected_Component): When rewriting an implicit dereference,
21216         analyze and resolve the rewritten explicit dereference so it is seen
21217         by the expander.
21218         (Insert_Dereference_Action): This procedure is now called only for the
21219         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
21220         dereferences that do not come from source (including explicit
21221         dereferences resulting from rewriting implicit ones), but do not
21222         recursively insert a check for the dereference nodes contained within
21223         the check.
21224         (Insert_Dereference_Action): Clarify and correct comment.
21225
21226 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
21227
21228         PR ada/14131
21229         Move language detection to the top level.
21230         * config-lang.in: Build by default.
21231
21232 2004-03-05  Robert Dewar  <dewar@gnat.com>
21233
21234         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
21235
21236         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
21237         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
21238         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
21239         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
21240         unchecked conversion to spec to avoid warnings.
21241
21242         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
21243         to Task_ID
21244
21245         * 7stpopsp.adb: Correct casing in To_Task_ID call
21246
21247         * a-strsea.ads, a-strsea.adb: Minor reformatting
21248
21249         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
21250
21251         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
21252         Adjust Max_Msg_Length to be clearly large enough.
21253
21254         * fe.h: Define In_Same_Source_Unit
21255
21256         * osint.adb: Add pragma Warnings Off to suppress warnings
21257         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
21258         aliasing warnings.
21259
21260         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
21261
21262         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
21263
21264         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
21265
21266         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
21267
21268         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
21269
21270         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
21271         node. We now do generate them for gcc back end.
21272
21273         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
21274         warning.
21275
21276         * sinput-c.adb: Fix bad name in header.
21277         Add pragma Warnings Off to suppress aliasing warning.
21278
21279         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
21280
21281         * snames.h, snames.ads, snames.adb: Add entry for pragma
21282         No_Strict_Aliasing.
21283
21284 2004-03-05  Vincent Celier  <celier@gnat.com>
21285
21286         * prj-com.ads: Add hash table Files_Htable to check when a file name
21287         is already a source of another project.
21288
21289         * prj-nmsc.adb (Record_Source): Before recording a new source, check
21290         if its file name is not already a source of another project. Report an
21291         error if it is.
21292
21293         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
21294         source file name, call gnatpp with all the sources of the main project.
21295
21296         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
21297         of file names.
21298
21299         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
21300         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
21301         /RUNTIME_SYSTEM=, converted to --RTS=
21302         /NOTABS, converted to -notabs
21303
21304 2004-03-05  Pascal Obry  <obry@gnat.com>
21305
21306         * make.adb: Minor reformatting.
21307
21308 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
21309
21310         Part of implemention of AI-262.
21311         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
21312
21313         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
21314         procedure.
21315
21316         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
21317         when component type is a partially constrained class-wide subtype.
21318         (Constrain_Discriminated_Type): If parent type has unknown
21319         discriminants, a constraint is illegal, even if full view has
21320         discriminants.
21321         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
21322         with unknown discriminants whose full view is a discriminated record.
21323
21324         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
21325         flag, to handle properly derivations of tagged types with unknown
21326         discriminants.
21327         (Analyze_Package_Spec, Analyze_Package_Body): Install
21328         Private_With_Clauses before analyzing private part or body.
21329
21330         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
21331         Has_Discriminants can be true for a given type (documentation).
21332
21333 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
21334
21335         * s-restri.ads: Fix license (GPL->GMGPL).
21336
21337         * s-tassta.adb: Minor reformatting.
21338
21339         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
21340         by calls to Exit_One_ATC_Level, since additional clean up is performed
21341         by this function.
21342
21343         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
21344         by calls to Exit_One_ATC_Level, since additional clean up is performed
21345         by this function.
21346
21347 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21348
21349         * trans.c: Reflect GCC changes to fix bootstrap problem.
21350         Add warning for suspicious aliasing unchecked conversion.
21351
21352 2004-03-05  GNAT Script  <nobody@gnat.com>
21353
21354         * Make-lang.in: Makefile automatically updated
21355
21356 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
21357
21358         * ali.adb (Read_Instantiation_Instance): Do not modify the
21359         current_file_num when reading information about instantiations, since
21360         this corrupts files in later references.
21361
21362 2004-03-02  Vincent Celier  <celier@gnat.com>
21363
21364         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
21365         before checking if it is read-only.
21366
21367         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
21368         of SRC_DIRS and eliminate duplicates.
21369
21370         * gprcmd.adb: Replace command "path" with command "path_sep" to return
21371         the path separator.
21372         (Usage): Document path_sep
21373
21374         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
21375         C++ compiler. No need for a script.
21376         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
21377         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
21378         subst.
21379
21380         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
21381         where there are Ada sources.
21382         (Set_Ada_Paths): Only add to the include path the source dirs of project
21383         with Ada sources.
21384         (Add_To_Path): Add the Display_Values of the directories, not their
21385         Values.
21386
21387         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
21388         data.
21389
21390         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
21391         is not No_Name.
21392         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
21393         Value is canonicalized.
21394         (Language_Independent_Check): Do not copy Value to Display_Value when
21395         canonicalizing Value.
21396
21397         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
21398         path to find limited with cycles.
21399         (Parse_Single_Project): Use canonical cased path to find the end of a
21400         with cycle.
21401
21402 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
21403
21404         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
21405         and not a child unit.
21406
21407         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
21408         appear in a with_clause.
21409
21410         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
21411         only happen in type_annotate mode, do not try to elaborate it.
21412
21413         * exp_util.adb (Force_Evaluation): If expression is a selected
21414         component on the left of an assignment, use a renaming rather than a
21415         temporary to remove side effects.
21416
21417         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
21418         inlined instance body, which is analyzed before the end of the
21419         enclosing scope.
21420
21421 2004-03-02  Robert Dewar  <dewar@gnat.com>
21422
21423         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
21424         sem_ch4.adb: Use new feature for substitution of keywords in VMS
21425
21426         * errout.ads, errout.adb: Implement new circuit for substitution of
21427         keywords in VMS.
21428
21429         * sem_case.adb (Analyze_Choices): Place message properly when case is
21430         a subtype reference rather than an explicit range.
21431
21432         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
21433
21434 2004-03-02  Doug Rupp  <rupp@gnat.com>
21435
21436         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
21437
21438 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
21439
21440         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
21441
21442 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21443
21444         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
21445         BLKmode bitfield.
21446
21447 2004-02-25  Robert Dewar  <dewar@gnat.com>
21448
21449         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
21450         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
21451         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
21452         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
21453         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
21454         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
21455         the defining instance of the type to avoid aliasing problems.
21456         Fix copyright header.  Fix bad comments in package header.
21457
21458         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
21459
21460 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
21461
21462         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
21463         rewritten as references when aliased through an address clause.
21464
21465         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
21466         whether call can be interpreted as an indirect call to the result of a
21467         parameterless function call returning an access subprogram.
21468
21469 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
21470
21471         Code clean up:
21472         * exp_ch7.adb (Make_Clean): Remove generation of calls to
21473         Unlock[_Entries], since this is now done by Service_Entries directly.
21474
21475         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
21476
21477         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
21478         Requeue_Call for better code readability. Change spec and update calls:
21479         PO_Service_Entries now unlock the PO on exit.
21480         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
21481         PO_Service_Entries.
21482
21483         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
21484
21485         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
21486
21487 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
21488
21489         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
21490         protected subprogram call and analyzing the result of such expanding
21491         in case when the called protected subprogram is eliminated.
21492
21493         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
21494         names.
21495
21496 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
21497
21498         * Makefile.in: Clean ups.
21499
21500 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
21501
21502         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
21503         protected operations if original subprogram is flagged as eliminated.
21504         (Expand_N_Subprogram_Body): For a protected operation, create
21505         discriminals for next operation before checking whether the operation
21506         is eliminated.
21507
21508         * exp_ch9.adb (Expand_N_Protected_Body,
21509         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
21510         for internal protected operations if the original subprogram is
21511         eliminated.
21512
21513         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
21514         declared in a single protected object.
21515
21516 2004-02-23  Vincent Celier  <celier@gnat.com>
21517
21518         * prj-attr.adb: Make attribute Builder'Executable an associative array,
21519         case insensitive if file names are case insensitive, instead of a
21520         standard associative array.
21521
21522         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
21523         them as case insensitive on platforms where the file names are case
21524         sensitive.
21525
21526         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
21527         project file has already been parsed that canonical path are compared.
21528
21529 2004-02-23  Robert Dewar  <dewar@gnat.com>
21530
21531         * sinput-c.ads: Correct bad unit title in header
21532
21533         * freeze.adb: Minor reformatting
21534
21535 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21536
21537         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
21538         nonaddressable COMPONENT_REF that is removing padding that we are
21539         taking the address of, take the address of the padded record instead
21540         if item is variable size.
21541
21542 2004-02-20  Robert Dewar  <dewar@gnat.com>
21543
21544         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
21545
21546 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
21547
21548         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
21549         itype references for the constrained designated type of a component
21550         whose base type is already frozen.
21551
21552 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
21553
21554         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
21555         avoid GCC warnings.
21556
21557 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
21558
21559         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
21560         identifier for a phantom package that rewrites the formal package
21561         declaration with a box. The Add semantic decorations for the defining
21562         identifier from the original node (that represents the formal package).
21563
21564 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
21565
21566         * Make-lang.in (ada/stamp-sdefault): Use the top level
21567         move-if-change.
21568
21569 2004-02-19  Richard Henderson  <rth@redhat.com>
21570
21571         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
21572
21573 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
21574
21575         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
21576         Scan_ALI can be used for multiple ALI files without reinitializing
21577         between calls.
21578
21579 2004-02-18  Robert Dewar  <dewar@gnat.com>
21580
21581         * debug.adb: Minor reformatting.
21582
21583 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21584
21585         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
21586         to zero if there is an address clause.
21587
21588 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
21589
21590         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
21591
21592 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
21593
21594         * layout.adb (Layout_Component_List): Revise generation of call to
21595         discriminant-checking function to pass selections of all of the type's
21596         discriminants rather than just the variant-controlling discriminant.
21597
21598 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
21599
21600         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
21601         fail in the current setup and triggers spurious system error messages.
21602         Pretend it occurred and failed instead.
21603
21604 2004-02-18  Vincent Celier  <celier@gnat.com>
21605
21606         * bld.adb: Mark FLDFLAGS as saved
21607         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
21608         it is not the root project.  Put each directory to be
21609         extended between double quotes to prevent it to be expanded on Windows.
21610         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
21611         the project file. Set them back to their initial values if they have not
21612         been set in the project file.
21613
21614         * gprcmd.adb: (Gprdebug, Debug): New global variables
21615         (Display_Command): New procedure
21616         (Usage): Document new command "linkopts"
21617         Call Display_Command when env var GPRDEBUG has the value "TRUE"
21618         Implement new command "linkopts"
21619         Remove quotes that may be around arguments for "extend"
21620         Always call Normalize_Pathname with arguments formatted for the platform
21621
21622         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
21623         Change @echo to @$(display) in target clean to be able to clean silently
21624
21625         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
21626
21627         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
21628         canonical case.
21629
21630         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
21631         = Extending_All when current project is an extending all project.
21632
21633         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
21634         set to True only for LINK command, after Unix switch -o.
21635         (Process_Arguments): Set Output_File_Expected to True for LINK command
21636         after Unix switch -o. When Output_File_Expected is True, never add an
21637         extension to a file name.
21638
21639         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
21640         option file name, only to the --for-linker= switch.
21641         (Option_File_Name): If option file name do not end with ".opt", append
21642         "/OPTIONS".
21643
21644 2004-02-18  GNAT Script  <nobody@gnat.com>
21645
21646         * Make-lang.in: Makefile automatically updated
21647
21648 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
21649
21650         * Make-lang.in (stamp-sdefault): Do not depend on
21651         move-if-change.
21652
21653 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
21654
21655         * config-lang.in: Disable Ada by default until probe logic for
21656         a bootstrap Ada compiler can be moved to the top level configure
21657         script.
21658
21659 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
21660
21661         * decl.c (components_to_record): Don't claim that the internal fields
21662         we make to hold the variant parts are semantically addressable, because
21663         they are not.
21664
21665         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
21666         adjust the comment describing the modular type form when we can use it.
21667         (Install_PAT): Account for the Esiz renaming.
21668
21669         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
21670         sc_onstack context indication before raising the exception to which
21671         the signal is mapped. Allows better handling of later signals possibly
21672         triggered by the resumed user code if the exception is handled.
21673
21674 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
21675
21676         * 5zinit.adb: Removed, no longer used.
21677
21678 2004-02-12  Robert Dewar  <dewar@gnat.com>
21679
21680         * ali.adb: Remove separating space between parameters on R line. Makes
21681         format consistent with format used by the binder for Set_Globals call.
21682
21683         * atree.ads, atree.adb: Minor reformatting (new function header format)
21684
21685         * bindgen.adb: Add Run-Time Globals documentation section containing
21686         detailed documentation of the globals passed from the binder file to
21687         the run time.
21688
21689         * gnatls.adb: Minor reformatting
21690
21691         * init.c (__gnat_set_globals): Add note pointing to documentation in
21692         bindgen.
21693
21694         * lib-writ.ads, lib-writ.adb: Remove separating space between
21695         parameters on R line.
21696         Makes format consistent with format used by the binder for Set_Globals
21697         call.
21698
21699         * osint.ads: Add 2004 to copyright notice
21700         Minor reformatting
21701
21702         * snames.ads: Correct capitalization of FIFO_Within_Priorities
21703         Noticed during code reading, documentation issue only
21704
21705         * usage.adb: Remove junk line for obsolete C switch
21706         Noticed during code reading
21707
21708 2004-02-12  Vincent Celier  <celier@gnat.com>
21709
21710         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
21711         extend for each directory, so that multiple /** directories are
21712         extended individually.
21713         (Recursive_Process): Set the default for LANGUAGES to ada
21714
21715         * gprcmd.adb: Define new command "ignore", to do nothing.
21716         Implement new comment "path".
21717
21718         * Makefile.generic: Suppress output when SILENT is set
21719         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
21720         used, so that the correct compiler is invoked.
21721         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
21722         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
21723
21724 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
21725
21726         * Makefile.in: Clean ups and remove obsolete targets.
21727
21728 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
21729
21730         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
21731         predicate declared in exp_util.
21732
21733         * exp_util.adb: Add comments.
21734
21735         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
21736         visibility before compiling context of the subunit.
21737
21738         * sem_res.adb (Check_Parameterless_Call): If the context expects a
21739         value but the name is a procedure, do not attempt to analyze as a call,
21740         in order to obtain more telling diagnostics.
21741
21742         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
21743         'Access on parameterless function calls.
21744         (Normalize_Actuals): For a parameterless function call with missing
21745         actuals, defer diagnostic until resolution of enclosing call.
21746
21747         * sem_util.adb (Wrong_Type): If the context type is an access to
21748         subprogram and the expression is a procedure name, suggest a missing
21749         'attribute.
21750
21751 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
21752             Nathanael Nerode  <neroden@gcc.gnu.org>
21753
21754         PR ada/6637
21755         PR ada/5911
21756         Merge with libada-branch:
21757         * config-lang.in: Build libada only when ada is built.
21758
21759 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
21760
21761         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
21762         for a tagged type, verify that both formals have the same type.
21763
21764         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
21765         temporary when the formal is an in-parameter and the actual a possibly
21766         unaligned slice.
21767
21768         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
21769         when expansion is disabled, to ensure proper name capture with
21770         overloaded literals.  Condition can be of any boolean type, resolve
21771         accordingly.
21772
21773         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
21774         renaming is for a formal subprogram with a default operator name, and
21775         there is a usable operator that is visible at the point of
21776         instantiation.
21777
21778 2004-02-09  Robert Dewar  <dewar@gnat.com>
21779
21780         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
21781         rewrite to ignore errors in ali files, intended to allow tools downward
21782         compatibility with new versions of ali files.
21783
21784         * ali.ads: Add new parameter Ignore_Errors
21785
21786         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
21787         duplicating the error message giving the file with restrictions.
21788
21789         * debug.adb: Add debug flag I for gnatbind
21790
21791         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
21792         operators for the case where the operator is a defining operator.
21793
21794         * exp_ch3.adb: Minor reformatting (new function spec format).
21795
21796         * exp_ch4.adb: Add comment for previous change, and make minor
21797         adjustment to loop to always check for improper loop termination.
21798         Minor reformatting throughout (new function spec format).
21799
21800         * gnatbind.adb: Implement -di debug flag for gnatbind
21801
21802         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
21803
21804         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
21805
21806         * lib-load.adb: Fix bad assertion.
21807         Found by testing and code reading.
21808         Minor reformatting.
21809
21810         * lib-load.ads: Minor reformatting.
21811
21812         * lib-writ.adb: There is only one R line now.
21813
21814         * lib-writ.ads: Add documentation on making downward compatible changes
21815         to ali files so old tools work with new ali files.
21816         There is only one R line now.
21817         Add documentation on format incompatibilities (with special GPS note)
21818
21819         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
21820
21821         * par-load.adb: Minor reformatting
21822
21823         * sem_ch8.adb: Fix to error message from last update
21824         Minor reformatting and restructuring of code from last update
21825
21826         * par-prag.adb, snames.adb, snames.ads, snames.h,
21827         sem_prag.adb: Implement pragma Profile.
21828
21829         * stylesw.adb: Implement -gnatyN switch to turn off all style check
21830         options.
21831
21832         * usage.adb: Add line for -gnatyN switch
21833
21834         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
21835
21836 2004-02-09  Albert Lee  <lee@gnat.com>
21837
21838         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
21839
21840 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
21841
21842         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
21843         slices.
21844
21845         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
21846         is nested in an instance that is not frozen yet, to avoid
21847         order-of-elaboration problems in gigi.
21848
21849         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
21850         body the attribute is legal.
21851
21852 2004-02-09  Robert Dewar  <dewar@gnat.com>
21853
21854         * s-rident.ads: Minor comment correction
21855
21856         * targparm.adb: Remove dependence on uintp completely. There was
21857         always a bug in Make in that it called Targparm before initializing
21858         the Uint package. The old code appeared to get away with this, but
21859         the new code did not! This caused an assertion error in gnatmake.
21860
21861         * targparm.ads: Fix bad comment, restriction pragmas with parameters
21862         are indeed fully supported.
21863
21864 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
21865
21866         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
21867
21868 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
21869
21870         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
21871         with targetm.calls.promote_prototypes.
21872
21873 2004-02-04  Robert Dewar  <dewar@gnat.com>
21874
21875         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
21876         ali.ads, gprcmd.adb: Minor reformatting
21877
21878         * bindgen.adb: Output restrictions string for new style restrictions
21879         handling
21880
21881         * impunit.adb: Add s-rident.ads (System.Rident) and
21882         s-restri (System.Restrictions)
21883
21884         * lib-writ.adb: Fix bug in writing restrictions string (last few
21885         entries wrong)
21886
21887         * s-restri.ads, s-restri.adb: Change name Restrictions to
21888         Run_Time_Restrictions to avoid conflict with package name.
21889         Add circuit to read and acquire run time restrictions.
21890
21891 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
21892
21893         * restrict.ads, restrict.adb: Use the new restriction
21894         No_Task_Attributes_Package instead of the old No_Task_Attributes.
21895
21896         * sem_prag.adb: No_Task_Attributes is a synonym of
21897         No_Task_Attributes_Package.
21898
21899         * snames.ads, snames.adb: New entry for proper handling of
21900         No_Task_Attributes.
21901
21902         * s-rident.ads: Adding restriction No_Task_Attributes_Package
21903         (AI-00249) that supersedes the GNAT specific restriction
21904         No_Task_Attributes.
21905
21906 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
21907
21908         * sem_prag.adb:
21909         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
21910          body, an identifier may be wrapped in an unchecked conversion.
21911
21912 2004-02-04  Vincent Celier  <celier@gnat.com>
21913
21914         * lib-writ.ads: Comment update for the W lines
21915
21916         * bld.adb: (Expression): An empty string list is static
21917
21918         * fname-uf.adb: Minor comment update
21919
21920         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
21921
21922         * gnatbind.adb: Initialize Cumulative_Restrictions with the
21923         restrictions on the target.
21924
21925 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
21926
21927         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
21928         gen_rtx.
21929
21930 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
21931
21932         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
21933
21934 2004-02-02  Vincent Celier  <celier@gnat.com>
21935
21936         * gprcmd.adb (Check_Args): If condition is false, print the invoked
21937         comment before the usage.
21938         Gprcmd: Fail when command is not recognized.
21939         (Usage): Document command "prefix"
21940
21941         * g-md5.adb (Digest): Process last block.
21942         (Update): Do not process last block. Store remaining characters and
21943         length in Context.
21944
21945         * g-md5.ads (Update): Document that several call to update are
21946         equivalent to one call with the concatenated string.
21947         (Context): Add fields to allow new Update behaviour.
21948
21949         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
21950         defaulted to False.
21951         When May_Fail is True and no existing file can be found, return No_File.
21952
21953         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
21954         functions.
21955
21956         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
21957         spec file name instead on the W line.
21958
21959 2004-02-02  Robert Dewar  <dewar@gnat.com>
21960
21961         * ali.adb: Read and acquire info from new format restrictions lines
21962
21963         * bcheck.adb: Add circuits for checking restrictions with parameters
21964
21965         * bindgen.adb: Output dummy restrictions data
21966         To be changed later
21967
21968         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
21969         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
21970         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
21971         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
21972         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
21973
21974         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
21975         the warning message on access to possibly uninitialized variable S)
21976         Minor changes for new restrictions handling.
21977
21978         * gnatbind.adb: Minor reformatting
21979         Minor changes for new restrictions handling
21980         Move circuit for -r processing here from bcheck (cleaner)
21981
21982         * gnatcmd.adb, gnatlink.adb: Minor reformatting
21983
21984         * lib-writ.adb: Output new format restrictions lines
21985
21986         * lib-writ.ads: Document new R format lines for new restrictions
21987         handling.
21988
21989         * s-restri.ads/adb: New files
21990
21991         * Makefile.rtl: Add entry for s-restri.ads/adb
21992
21993         * par-ch3.adb: Fix bad error messages starting with upper case letter
21994         Minor reformatting
21995
21996         * restrict.adb: Major rewrite throughout for new restrictions handling
21997         Major point is to handle restrictions with parameters
21998
21999         * restrict.ads: Major changes in interface to handle restrictions with
22000         parameters. Also generally simplifies setting of restrictions.
22001
22002         * snames.ads/adb: New entry for proper handling of No_Requeue
22003
22004         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
22005         restriction counting.
22006         Other minor changes for new restrictions handling
22007
22008         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
22009         Restriction_Warnings now allows full parameter notation
22010         Major rewrite of Restrictions for new restrictions handling
22011
22012 2004-02-02  Javier Miranda  <miranda@gnat.com>
22013
22014         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
22015         syntax rule for object renaming declarations.
22016         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
22017         component definitions.
22018
22019         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
22020         components.
22021         (Array_Type_Declaration): Give support to access components. In addition
22022         it was also modified to reflect the name of the object in anonymous
22023         array types. The old code did not take into account that it is possible
22024         to have an unconstrained anonymous array with an initial value.
22025         (Check_Or_Process_Discriminants): Allow access discriminant in
22026         non-limited types.
22027         (Process_Discriminants): Allow access discriminant in non-limited types
22028         Initialize the new Access_Definition field in N_Object_Renaming_Decl
22029         node.  Change Ada0Y to Ada 0Y in comments
22030
22031         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
22032         equality operators.
22033         Change Ada0Y to Ada 0Y in comments
22034
22035         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
22036         renamings Change Ada0Y to Ada 0Y in comments
22037
22038         * sem_type.adb (Find_Unique_Type): Give support to the equality
22039         operators for universal access types
22040         Change Ada0Y to Ada 0Y in comments
22041
22042         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
22043
22044         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
22045         field.
22046         (N_Object_Renaming_Declaration): Addition of Access_Definition field
22047         Change Ada0Y to Ada 0Y in comments
22048
22049         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
22050         component definition and object renaming nodes
22051         Change Ada0Y to Ada 0Y in comments
22052
22053 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
22054
22055         * restrict.adb: Use the new restriction identifier
22056         No_Requeue_Statements instead of the old No_Requeue for defining the
22057         restricted profile.
22058
22059         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
22060         No_Requeue_Statements.
22061
22062         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
22063         that supersedes the GNAT specific restriction No_Requeue. The later is
22064         kept for backward compatibility.
22065
22066 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
22067
22068         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
22069         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
22070         pragma and fix incorrect ones.
22071
22072         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
22073         warning if the pragma is redundant.
22074
22075 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
22076
22077         * 5staprop.adb: Add missing 'constant' keywords.
22078
22079         * Makefile.in: use consistent value for SYMLIB on
22080         platforms where libaddr2line is supported.
22081
22082 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22083
22084         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
22085         annotating types.
22086
22087 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
22088
22089         * init.c (__gnat_install_handler): Setup an alternate stack for signal
22090         handlers in the environment thread. This allows proper propagation of
22091         an exception on stack overflows in this thread even when the builtin
22092         ABI stack-checking scheme is used without support for a stack reserve
22093         region.
22094
22095         * utils.c (create_field_decl): Augment the head comment about bitfield
22096         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
22097         here, because the former is not accurate enough at this point.
22098         Let finish_record_type decide instead.
22099         Don't make a bitfield if the field is to be addressable.
22100         Always set a size for the field if the record is packed, to ensure the
22101         checks for bitfield creation are triggered.
22102         (finish_record_type): During last pass over the fields, clear
22103         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
22104         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
22105         from DECL_BIT_FIELD.
22106
22107 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
22108
22109         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
22110         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
22111         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
22112
22113 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22114
22115         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
22116
22117         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
22118         (ZCX_By_Default): Likewise.
22119         (Front_End_ZCX_Support): Likewise.
22120
22121         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
22122         (Initialize_Lock): Mark Level unreferenced.
22123         (Sleep): Mark Reason unreferenced.
22124         (Timed_Sleep): Likewise.
22125         (Wakeup): Likewise.
22126         (Exit_Task): Use Result.
22127         (Check_No_Locks): Mark Self_ID unreferenced.
22128
22129         * 5gtasinf.adb (New_Sproc): Make Attr constant.
22130         (Bound_Thread_Attributes): Make Sproc constant.
22131         (New_Bound_Thread_Attributes): Likewise.
22132
22133 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
22134
22135         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
22136         one-dimensional array an slice assignments, when component type is
22137         controlled.
22138
22139         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
22140         component type is controlled, and control_actions are in effect, use
22141         TSS procedure rather than generating inline code.
22142
22143         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
22144         arrays with controlled components.
22145
22146 2004-01-26  Vincent Celier  <celier@gnat.com>
22147
22148         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
22149         command line for the non VMS case.
22150
22151         * gnatlink.adb (Process_Binder_File): When building object file, if
22152         GNU linker is used, put all object paths between quotes, to prevent ld
22153         error when there are unusual characters (such as '!') in the paths.
22154
22155         * Makefile.generic: When there are sources in Ada and the main is in
22156         C/C++, invoke gnatmake with -B, instead of -z.
22157
22158         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
22159         from VMS_Conversion.
22160         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
22161         specification of argument file on the command line.
22162
22163 2004-01-26  Bernard Banner  <banner@gnat.com>
22164
22165         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
22166
22167 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
22168
22169         * snames.adb: Update copyright notice.
22170         Add info on slice assignment for controlled arrays.
22171
22172 2004-01-23  Robert Dewar  <dewar@gnat.com>
22173
22174         * exp_aggr.adb: Minor reformatting
22175
22176         * exp_ch9.adb: Minor code clean up
22177         Minor reformatting
22178         Fix bad character in comment
22179
22180         PR ada/13471
22181         * targparm.adb (Get_Target_Parameters): Give clean abort error on
22182         unexpected end of file, along with more detailed message.
22183
22184 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22185
22186         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
22187         PAT.
22188
22189         * decl.c (copy_alias_set): New function.
22190         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
22191
22192 2004-01-23  Doug Rupp  <rupp@gnat.com>
22193
22194         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
22195         lib$${file} in case subsequent character is not a separator.
22196
22197 2004-01-23  Vincent Celier  <celier@gnat.com>
22198
22199         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
22200         when the GCC version is at least 3.
22201
22202         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
22203         Remove all "Opt.", to prepare for opt split
22204
22205         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
22206         Extends_All. Set to True when the project parsed is an extending all
22207         project. Fails for importing an extending all project only when the
22208         imported project is an extending all project.
22209         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
22210         depending on the value of Extends_All returned.
22211
22212         * prj-proc.adb (Process): Check that no project shares its object
22213         directory with a project that extends it, directly or indirectly,
22214         including a virtual project.
22215         Check that no project extended by another project shares its object
22216         directory with another also extended project.
22217
22218         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
22219         Kind = N_With_Clause
22220
22221         * prj-tree.ads: Minor reformatting
22222         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
22223
22224 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
22225
22226         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
22227         applies to a type with an incomplete view, use full view in Name of
22228         clause, for consistency with uses of Get_Attribute_Definition_Clause.
22229
22230 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
22231
22232         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
22233         SCHED_RR, since other values are not supported by this policy.
22234         (Initialize): Move initialization of mutex attribute to package
22235         elaboration, to prevent early access to this variable.
22236
22237         * Makefile.in: Remove mention of Makefile.adalib, unused.
22238
22239         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
22240         1ssecsta.ads: Removed, unused.
22241
22242 2004-01-21  Javier Miranda  <miranda@gnat.com>
22243
22244         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
22245         entity if already built in the current scope.
22246
22247         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
22248         reminder in internal scopes. Required for nested limited aggregates.
22249
22250 2004-01-21  Doug Rupp  <rupp@gnat.com>
22251
22252         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
22253         VMS. Replace all occurences of libgnat- and libgnarl- with
22254         libgnat$(hyphen) and libgnarl$(hyphen).
22255         Fixed shared library build problem on VMS.
22256
22257 2004-01-21  Robert Dewar  <dewar@gnat.com>
22258
22259         * mlib-prj.adb: Minor reformatting
22260
22261 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
22262
22263         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
22264         'constant' keywords for declaration of pointers that are not modified.
22265
22266         * exp_pakd.adb: Fix English in comment.
22267
22268 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
22269
22270         PR ada/10889
22271         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
22272         copy all attributes of the parent, including the foreign language
22273         convention.
22274
22275 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
22276
22277         PR ada/10565
22278         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
22279         for 'delay until' statement.
22280
22281 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
22282
22283         * Make-lang.in: Replace $(docdir) with doc.
22284         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
22285         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
22286         to use consistent MAKEINFO rule.
22287         (ada.man, ada.srcman): Dummy entry.
22288         (ADA_INFOFILES): Define.
22289         (ada.info, ada.srcinfo): New rules.
22290
22291 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
22292
22293         * utils.c: Update copyright notice, missed in previous change.
22294
22295 2004-01-19  Vincent Celier  <celier@gnat.com>
22296
22297         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
22298         args if Bind is True. Set First_ALI, if not already done.
22299         (Build_Library): For Stand Alone Libraries, extract from one ALI file
22300         an eventual --RTS switch, for gnatbind, and all backend switches +
22301         --RTS, for linking.
22302
22303 2004-01-19  Robert Dewar  <dewar@gnat.com>
22304
22305         * sem_attr.adb, memtrack.adb: Minor reformatting
22306
22307 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
22308
22309         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
22310         that rename enumeration literals. This is properly done in sem_eval.
22311
22312         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
22313         to functions that rename enumeration literals.
22314
22315         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
22316         functions that rename enumeration literals.
22317
22318 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
22319
22320         * Make-lang.in (utils.o): Depend on target.h.
22321         * utils.c: Include target.h.
22322         (process_attributes): Use targetm.have_named_sections instead
22323         of ASM_OUTPUT_SECTION_NAME.
22324
22325 2004-01-16  Andreas Jaeger  <aj@suse.de>
22326
22327         * Makefile.in: Add $(DESTDIR).
22328
22329 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
22330
22331         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
22332         also when not defining if a Size clause applies. That information is
22333         not to be ignored.
22334
22335 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
22336
22337         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
22338         symbolic links for the shared gnat run time when needed.
22339
22340 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
22341
22342         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
22343         for writing, and terminate with an error message if not.
22344
22345 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
22346
22347         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
22348         warning on an access to subprogram in an instance, when the target
22349         type is declared in the same generic unit.
22350         (Eval_Attribute): If 'access is known to fail accessibility check,
22351         rewrite as a raise statement.
22352
22353 2004-01-15  GNAT Script  <nobody@gnat.com>
22354
22355         * Make-lang.in: Makefile automatically updated
22356
22357 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
22358
22359         * Make-lang.in (ada.srcextra): Dummy entry.
22360
22361 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
22362
22363         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
22364
22365 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
22366
22367         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
22368         components that are initialized with aggregates.
22369
22370 2004-01-13  Vincent Celier  <celier@gnat.com>
22371
22372         * gnatlink.adb (Process_Binder_File): To find directory of shared
22373         libgcc, if "gcc-lib" is not a subdirectory, look for the last
22374         subdirectory "lib" in the path of the shared libgnat or libgnarl.
22375
22376         * make.adb (Gnatmake): If GCC version is at least 3, link with
22377         -shared-libgcc, when there is at least one shared library project.
22378
22379         * opt.ads (GCC_Version): New integer constant.
22380
22381         * adaint.c (get_gcc_version): New function.
22382
22383 2004-01-13  Robert Dewar  <dewar@gnat.com>
22384
22385         * sem_dist.adb, sem_res.adb, sem_util.adb,
22386         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
22387         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
22388
22389 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
22390
22391         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
22392         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
22393         declarations.
22394
22395 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
22396
22397         * misc.c: Remove trailing spaces.
22398         Update copyright notice missed in previous change.
22399
22400         PR ada/13572
22401         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
22402         prefix/share/make
22403
22404         * Makefile.generic: Update copyright.
22405         Add license notice.
22406
22407         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
22408         of prefix/share/make.
22409
22410         * Makefile.prolog: Update copyright.
22411         Add license notice.
22412
22413 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
22414
22415         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
22416         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
22417         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
22418         instead of String.
22419
22420         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
22421         signature.
22422
22423 2004-01-12  Javier Miranda  <miranda@gnat.com>
22424
22425         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
22426         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
22427         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
22428         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
22429         Component_Definition node.
22430
22431 2004-01-12  Ed Falis  <falis@gnat.com>
22432
22433         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
22434
22435 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
22436
22437         * link.c: Change default libgnat kind to STATIC for FreeBSD.
22438
22439 2004-01-12  Bernard Banner  <banner@gnat.com>
22440
22441         * Makefile.in: map 86numaux to a-numaux for x86_64
22442
22443 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
22444
22445         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
22446         generated to rename a generic actual, go to the actual itself, the
22447         subtype is not a user-visible entity.
22448
22449         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
22450         part is a private subtype, reset the visibility of its full view, if
22451         any, to be consistent.
22452
22453         PR ada/13417
22454         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
22455         to use a generic package G as a formal package for another generic
22456         declared within G.
22457
22458 2004-01-12  Robert Dewar  <dewar@gnat.com>
22459
22460         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
22461
22462         * usage.adb: Remove mention of obsolete -gnatwb switch
22463         Noticed during code reading
22464
22465 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
22466
22467         * 1ssecsta.adb: Minor changes for -gnatwa warnings
22468
22469 2004-01-12  GNAT Script  <nobody@gnat.com>
22470
22471         * Make-lang.in: Makefile automatically updated
22472
22473 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
22474
22475         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
22476
22477 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22478
22479         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
22480
22481 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
22482
22483         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
22484         Update comment and copyright date.
22485         * stamp-xgnatug: Delete.
22486
22487 2004-01-05  Robert Dewar  <dewar@gnat.com>
22488
22489         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
22490         be modified by the binder generated main program if the -D switch is
22491         used.
22492
22493         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
22494         imported functions (since now we expect this to be done for imported
22495         functions)
22496
22497         * 5vtaprop.adb: Add several ??? for sections requiring more comments
22498         Minor reformatting throughout
22499
22500         * 5zinit.adb: Minor reformatting
22501         Add 2004 to copyright date
22502         Minor changes to avoid -gnatwa warnings
22503         Correct some instances of using OR instead of OR ELSE (noted while
22504         doing reformatting)
22505
22506         * sprint.adb: Minor updates to avoid -gnatwa warnings
22507
22508         * s-secsta.ads, s-secsta.adb:
22509         (SS_Get_Max): New function to obtain high water mark for ss stack
22510         Default_Secondary_Stack is not a constant since it may be modified by
22511         the binder generated main program if the -D switch is used.
22512
22513         * switch-b.adb: New -Dnnn switch for binder
22514
22515         * switch-c.adb:
22516         Make -gnatg imply all warnings currently in -gnatwa
22517
22518         * vms_conv.adb: Minor reformatting
22519         Add 2004 to copyright notice
22520         Add 2004 to printed copyright notice
22521
22522         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
22523         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
22524         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
22525         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
22526         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
22527         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
22528         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
22529         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
22530         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
22531         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
22532         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
22533         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
22534         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
22535         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
22536         checks.adb, clean.adb, cstand.adb, einfo.ads,
22537         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
22538         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
22539         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
22540         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
22541         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
22542         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
22543         Minor reformatting and code clean ups.
22544         Minor changes to prevent -gnatwa warnings
22545
22546         * ali.adb: Minor reformatting and cleanup of code
22547         Acquire new SS indication of secondary stack use from ali files
22548
22549         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
22550         (since now we expect this to be done for imported functions)
22551
22552         * bindgen.adb: Generate call to modify default secondary stack size if
22553         -Dnnn switch given
22554
22555         * bindusg.adb: Add line for new -D switch
22556
22557         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
22558         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
22559         Add circuitry for both records and arrays to avoid gigi
22560         processing if the type involved has non-bit-aligned components
22561
22562         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
22563         N_String_Literal node always references an E_String_Literal_Subtype
22564         entity. This may not be true in the future.
22565         (Possible_Bit_Aligned_Component): Move processing of
22566         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
22567
22568         * exp_ch6.adb (Expand_Thread_Body): Pick up
22569         Default_Secondary_Stack_Size as variable so that we get value modified
22570         by possible -Dnnn binder parameter.
22571
22572         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
22573         (Type_May_Have_Bit_Aligned_Components): New function.
22574
22575         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
22576         (Type_May_Have_Bit_Aligned_Components): New function.
22577
22578         * fe.h: (Set_Identifier_Casing): Fix prototype.
22579         Add declaration for Sem_Elim.Eliminate_Error_Msg.
22580         Minor reformatting.
22581
22582         * freeze.adb (Freeze_Entity): Add RM reference to error message about
22583         importing constant atomic/volatile objects.
22584         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
22585         unless explicit Pure_Function pragma given, to avoid insidious bug of
22586         call to non-pure imported function getting eliminated.
22587
22588         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
22589         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
22590         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
22591         Add 2004 to printed copyright notice
22592
22593         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
22594         stack used.
22595
22596         * Makefile.rtl: Add entry for g-sestin.o
22597         g-sestin.ads: New file.
22598
22599         * mdll.adb: Minor changes to avoid -gnatwa warnings
22600
22601         * mlib-tgt.adb: Minor reformatting
22602
22603         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
22604         New switch Sec_Stack_Used (GNAT, GNATBIND)
22605         Make Default_Secondary_Stack_Size a variable instead of a constant,
22606         so that it can be modified by the new -Dnnn bind switch.
22607
22608         * rtsfind.adb (Load_Fail): Give full error message in configurable
22609         run-time mode if all_errors mode is set. This was not done in the case
22610         of a file not found, which was an oversight.
22611         Note if secondary stack unit is used by compiler.
22612
22613         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
22614         ineffective elaborate all pragmas on non-visible packages (this
22615         happened when a renamed subprogram was called). Now the elaborate all
22616         always goes on the package containing the renaming rather than the one
22617         containing the renamed subprogram.
22618
22619         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
22620         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
22621
22622         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
22623         has an Etype that references an E_String_Literal.
22624         (Eval_String_Literal): Avoid assumption that N_String_Literal node
22625         always references an E_String_Literal_Subtype entity. This may not
22626         be true in the future.
22627
22628         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
22629         pragma location.
22630
22631         * sem_res.adb (Resolve): Specialize msg for function name used in proc
22632         call.
22633
22634 2004-01-05  Ed Falis  <falis@gnat.com>
22635
22636         * g-debuti.adb: Replaced direct boolean operator with short-circuit
22637         form.
22638
22639 2004-01-05  Vincent Celier  <celier@gnat.com>
22640
22641         * bld.adb: Minor comment updates
22642         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
22643         of Item_Name).
22644
22645         * make.adb (Gnatmake): Special process for files to compile/check when
22646         -B is specified. Fail when there are only foreign mains in attribute
22647         Main of the project file and -B is not specified. Do not skip bind/link
22648         steps when -B is specified.
22649
22650         * makeusg.adb: Document new switch -B
22651
22652         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
22653
22654         * switch-m.adb: (Scan_Make_Switches): Process -B switch
22655
22656         * vms_data.ads: Add new GNAT PRETTY qualifier
22657         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
22658
22659 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22660
22661         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
22662         case.
22663
22664         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
22665         Set_Identifier_Casing.
22666
22667         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
22668         has size that overflows.
22669
22670 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
22671
22672         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
22673         -gnatwa warning on static condition.
22674
22675 2004-01-05  Doug Rupp  <rupp@gnat.com>
22676
22677         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
22678
22679 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
22680
22681         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
22682         all attributes, including read-only attribute.
22683
22684 2004-01-05  Pascal Obry  <obry@gnat.com>
22685
22686         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
22687         library naming scheme.
22688
22689         * mlib-prj.adb (Build_Library): Generate different names for the static
22690         or dynamic version of the GNAT runtime. This is needed to support the
22691         new shared library naming scheme.
22692         (Process_Binder_File): Add detection of shared library in binder file
22693         based on the new naming scheme.
22694
22695         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
22696         scheme for the shared runtime libraries.
22697
22698         * Makefile.in:
22699         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
22700         scheme.
22701         (install-gnatlib): Do not create symlinks for shared libraries.
22702         (gnatlib-shared-default): Idem.
22703         (gnatlib-shared-dual-win32): New target. Not used for now as the
22704         auto-import feature does not support arrays/records.
22705         (gnatlib-shared-win32): Do not create copy for the shared libraries.
22706         (gnatlib-shared-vms): Fix shared runtime libraries names.
22707
22708         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
22709         dependent runtime shared library name.
22710
22711 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
22712
22713         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
22714         than the object.
22715
22716 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
22717
22718         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
22719         protected objects when allocator has a subtype indication, not a
22720         qualified expression. Note that qualified expressions may have to be
22721         checked when limited aggregates are implemented.
22722
22723         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
22724         pure, emit warning.
22725         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
22726         subprogram is imported, remove warning.
22727
22728 2004-01-05  Geert Bosch  <bosch@gnat.com>
22729
22730         * s-poosiz.adb: Update copyright notice.
22731         (Allocate): Use Task_Lock to protect against concurrent access.
22732         (Deallocate): Likewise.
22733
22734 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
22735
22736         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
22737         comment.
22738
22739 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
22740
22741         * gnat_ug.texi: Force a CVS commit by updating copyright.
22742         * gnat_ug_vxw.texi: Regenerate.
22743         * gnat_ug_wnt.texi: Regenerate.
22744         * gnat_ug_vms.texi: Regenerate.
22745         * gnat_ug_unx.texi: Regenerate.
22746
22747 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
22748
22749         * trans.c: Remove uses of "register" specifier in
22750         declarations of local variables.
22751
22752 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
22753
22754         * stamp-xgnatug: New stamp file.
22755         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
22756         (ada/doctools/xgnatug): Add $(build_exeext).
22757         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
22758         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
22759
22760 2003-12-17  Ed Falis  <falis@gnat.com>
22761
22762         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
22763         eliminate warning.
22764
22765         * a-exextr.adb: Add context clause for
22766         Ada.Exceptions.Last_Chance_Handler.
22767
22768 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
22769
22770         * cstand.adb (Create_Standard): Change the way how the declaration of
22771         the Duration type is created (making it the same way as it is for all
22772         the other standard types).
22773
22774 2003-12-17  Robert Dewar  <dewar@gnat.com>
22775
22776         * s-crtl.ads: Fix header format
22777         Change Pure to Preelaborate
22778
22779 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
22780
22781         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
22782         the expression type only if it is declared in the current unit.
22783
22784         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
22785         are universal and already analyzed, as can occur in constrained
22786         subcomponents that depend on discriminants, when one constraint is a
22787         subtype mark.
22788
22789         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
22790         type Any_Fixed is legal as the argument of a conversion, if only one
22791         fixed-point type is in context.
22792
22793 2003-12-17  GNAT Script  <nobody@gnat.com>
22794
22795         * Make-lang.in: Makefile automatically updated
22796
22797 2003-12-15  Robert Dewar  <dewar@gnat.com>
22798
22799         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
22800         sec stack size.
22801
22802 2003-12-15  Vincent Celier  <celier@gnat.com>
22803
22804         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
22805         (Gnatchop): Do not set failure status when reporting the number of
22806         warnings.
22807
22808 2003-12-15  Doug Rupp  <rupp@gnat.com>
22809
22810         * s-ctrl.ads: New file.
22811
22812         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
22813
22814         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
22815         (GNATBIND_OBJS): Add ada/s-crtl.o.
22816
22817         * Makefile.in [VMS]: Clean up ifeq rules.
22818
22819         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
22820         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
22821         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
22822         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
22823         s-tasdeb.adb: Update copyright.
22824         Import System.CRTL.
22825         Make minor modifications to use System.CRTL declared functions instead
22826         of importing locally.
22827
22828 2003-12-15  GNAT Script  <nobody@gnat.com>
22829
22830         * Make-lang.in: Makefile automatically updated
22831
22832 2003-12-11  Ed Falis  <falis@gnat.com>
22833
22834         * 5zinit.adb: Clean up.
22835
22836         * 5zintman.adb (Notify_Exception): replaced case statement with a call
22837         to __gnat_map_signal, imported from init.c to support
22838         signal -> exception mappings that depend on the vxWorks version.
22839
22840         * init.c:
22841         Created and exported __gnat_map_signal to support signal -> exception
22842         mapping that is dependent on the VxWorks version.
22843         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
22844
22845 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
22846
22847         * 5wosinte.ads: Link with -mthreads switch.
22848
22849 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
22850
22851         * init.c (__gnat_install_handler [NetBSD]): Set
22852         __gnat_handler_installed, as done on all other platforms.
22853         Remove duplicated code.
22854
22855 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
22856
22857         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
22858
22859 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
22860
22861         * sinfo.ads: Fix inconsistent example code in comment.
22862
22863 2003-12-11  Robert Dewar  <dewar@gnat.com>
22864
22865         * a-tiinau.adb: Add a couple of comments
22866
22867         * sem_ch3.adb: Minor reformatting
22868
22869         * sem_prag.adb:
22870         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
22871         Minor reformatting throughout
22872
22873 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
22874
22875         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
22876         bounds of a loop, create a separate block in order to generate proper
22877         cleanup actions to prevent memory leaks.
22878
22879         * sem_res.adb (Resolve_Call): After a call to
22880         Establish_Transient_Scope, the call may be rewritten and relocated, in
22881         which case no further processing is needed.
22882
22883         * sem_util.adb: (Wrong_Type): Refine previous fix.
22884          Fixes ACATS regressions.
22885
22886         PR ada/13353
22887         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
22888         be inlined.
22889
22890 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
22891
22892         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
22893         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
22894         obsolete files.
22895
22896         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
22897         (rts-zfp): Ditto.
22898
22899 2003-12-08  Robert Dewar  <dewar@gnat.com>
22900
22901         * 7sintman.adb: Minor reformatting
22902
22903         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
22904         standard linker options to get standard libraries linked. We now plan
22905         to provide dummy versions of these libraries to match the appropriate
22906         configurable run-time (e.g. if a library is not needed at all, provide
22907         a dummy empty library).
22908
22909         * targparm.ads: Configurable_Run_Time mode no longer affects linker
22910         options (-L parameters and standard libraries). What we plan to do is
22911         to provide dummy libraries where the libraries are not required.
22912
22913         * gnatbind.adb: Minor comment improvement
22914
22915 2003-12-08  Javier Miranda  <miranda@gnat.com>
22916
22917         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
22918         aggregate in the parent. Otherwise constants with limited aggregates
22919         are not supported. Add new formal to pass the component type (Ctype).
22920         It is required to call the corresponding IP subprogram in case of
22921         default initialized components.
22922         (Gen_Assign): In case of default-initialized component, generate a
22923         call to the IP subprogram associated with the component.
22924         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
22925         of aggregate with default initialized components.
22926         (Has_Default_Init_Comps): Improve implementation to recursively check
22927         all the present expressions.
22928
22929         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
22930         to indicate that the initialization call corresponds to a
22931         default-initialized component of an aggregate.
22932         In case of default initialized aggregate with tasks this parameter is
22933         used to generate a null string (this is just a workaround that must be
22934         improved later). In case of discriminants, this parameter is used to
22935         generate a selected component node that gives access to the discriminant
22936         value.
22937
22938         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
22939         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
22940         allocated aggregates with default-initialized components.
22941
22942         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
22943         the box notation is used in positional aggregates.
22944
22945 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
22946
22947         * lib.ads: Fix typo in comment
22948
22949 2003-12-08  Vincent Celier  <celier@gnat.com>
22950
22951         * prj.adb (Project_Empty): New component Unkept_Comments
22952         (Scan): Remove procedure; moved to Prj.Err.
22953
22954         * prj.ads (Project_Data): New Boolean component Unkept_Comments
22955         (Scan): Remove procedure; moved to Prj.Err.
22956
22957         * prj-dect.adb: Manage comments for the different declarations.
22958
22959         * prj-part.adb (With_Record): New component Node
22960         (Parse): New Boolean parameter Store_Comments, defaulted to False.
22961         Set the scanner to return ends of line and comments as tokens, if
22962         Store_Comments is True.
22963         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
22964         comments are associated with these nodes. Store the node IDs in the
22965         With_Records.
22966         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
22967         With_Records.
22968         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
22969         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
22970         current project. Call Tree.Restore afterwards. Set the various nodes
22971         for comment storage (Next_End, End_Of_Line, Previous_Line,
22972         Previous_End).
22973
22974         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
22975         defaulted to False.
22976
22977         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
22978         to False. When Truncated is True, truncate the string, never go to the
22979         next line.
22980         (Write_End_Of_Line_Comment): New procedure
22981         (Print): Process comments for nodes N_With_Clause,
22982         N_Package_Declaration, N_String_Type_Declaration,
22983         N_Attribute_Declaration, N_Typed_Variable_Declaration,
22984         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
22985         Process nodes N_Comment.
22986
22987         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
22988         without comments and there are some comments, set the flag
22989         Unkept_Comments to True.
22990         (Scan): If there are comments, set the flag Unkept_Comments to True and
22991         clear the comments.
22992         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
22993         (Next_End_Nodes: New table
22994         (Comment_Zones_Of): New function
22995         (Scan): New procedure; moved from Prj. Accumulate comments in the
22996         Comments table and set end of line comments, comments after, after end
22997         and before end.
22998         (Add_Comments): New procedure
22999         (Save, Restore, Seset_State): New procedures
23000         (There_Are_Unkept_Comments): New function
23001         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
23002         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
23003         procedures.
23004         (First_Comment_After, First_Comment_After_End): New functions
23005         (First_Comment_Before, First_Comment_Before_End): New functions
23006         (Next_Comment): New function
23007         (End_Of_Line_Comment, Follows_Empty_Line,
23008         Is_Followed_By_Empty_Line): New functions
23009         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
23010         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
23011         (Set_Next_Comment): New procedure
23012         (Default_Project_Node): Associate comment before if the node can store
23013         comments.
23014
23015         * scans.ads (Token_Type): New enumeration value Tok_Comment
23016         (Comment_Id): New global variable
23017
23018         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
23019         defaulted to False.
23020         (Scan): Store position of start of comment. If comments are tokens, set
23021         Comment_Id and set Token to Tok_Comment when scanning a comment.
23022         (Set_Comment_As_Token): New procedure
23023
23024         * sinput-p.adb: Update Copyright notice
23025         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
23026         that no longer exists.
23027
23028 2003-12-08  Javier Miranda  <miranda@gnat.com>
23029
23030         * sem_aggr.adb: Add dependence on Exp_Tss package
23031         Correct typo in comment
23032         (Resolve_Aggregate): In case of array aggregates set the estimated
23033         type of the aggregate before calling resolve. This is needed to know
23034         the name of the corresponding IP in case of limited array aggregates.
23035         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
23036         in case of default initialized array components.
23037
23038         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
23039         types. Required to give support to limited aggregates in generic
23040         formals.
23041
23042 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
23043
23044         * sem_ch3.adb (Check_Initialization): For legality purposes, an
23045         inlined body functions like an instantiation.
23046         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
23047         until bounds are analyzed, to diagnose premature use of type.
23048
23049         * sem_util.adb (Wrong_Type): Improve error message when the type of
23050         the expression is used prematurely.
23051
23052 2003-12-08  GNAT Script  <nobody@gnat.com>
23053
23054         * Make-lang.in: Makefile automatically updated
23055
23056 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
23057
23058         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
23059         they are automatically generated by Make-lang.in and cause nothing but
23060         maintenance troubles.
23061
23062 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
23063
23064         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
23065         version of this unit).
23066
23067 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
23068
23069         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
23070         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
23071         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
23072         the body of System.Interrupt_Management common to several targets.
23073         Update copyright notice when appropriate.
23074
23075         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
23076         constant.
23077
23078         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
23079         to ensure that the kernel fills in the interrupted context structure
23080         before calling a signal handler, which is necessary to be able to
23081         unwind past it. Update the copyright notice.
23082
23083 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
23084
23085         * a-elchha.ads: New file.
23086
23087         * a-elchha.adb: New default last chance handler. Contents taken from
23088         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
23089
23090         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
23091         is moved to a-elchha.adb to provide a target-independent default last
23092         chance handler.
23093
23094         * Makefile.rtl: Add a-elchha.o
23095
23096         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
23097
23098 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
23099
23100         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
23101         declared in an instance, do not inline the call if the instance is not
23102         frozen yet, to prevent order of elaboration problems.
23103
23104         * sem_prag.adb: Add comments for previous fix.
23105
23106 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
23107
23108         * g-table.adb: Use the right variable in Set_Item.
23109         Update copyright notice.
23110
23111 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
23112
23113         * Makefile.in: Remove unused rules.
23114
23115 2003-12-05  Vincent Celier  <celier@gnat.com>
23116
23117         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
23118         -nostdlib. Not needed here after all.
23119
23120 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
23121
23122         PR ada/11724
23123         * adaint.h, adaint.c, g-os_lib.ads:
23124         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
23125         on some platforms (including FreeBSD), it is a 64 bit value.
23126         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
23127
23128 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
23129
23130         * gnatvsn.ads (Library_Version): Now contain only the relevant
23131         version info.
23132         (Verbose_Library_Version): New constant.
23133
23134         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
23135         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
23136         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
23137
23138         * gnatlbr.adb: Clean up: replace Library_Version by
23139         Verbose_Library_Version.
23140
23141         * make.adb, lib-writ.adb, exp_attr.adb:
23142         Clean up: replace Library_Version by Verbose_Library_Version.
23143
23144         * 5lintman.adb: Removed.
23145
23146         * Makefile.in:
23147         Update and simplify computation of LIBRARY_VERSION.
23148         Fix computation of GSMATCH_VERSION.
23149         5lintman.adb is no longer used: replaced by 7sintman.adb.
23150
23151 2003-12-03  Robert Dewar  <dewar@gnat.com>
23152
23153         * exp_ch5.adb:
23154         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
23155         name. Modified to consider small non-bit-packed arrays as troublesome
23156         and in need of component-by-component assigment expansion.
23157
23158 2003-12-03  Vincent Celier  <celier@gnat.com>
23159
23160         * lang-specs.h: Process nostdlib as nostdinc
23161
23162         * back_end.adb: Update Copyright notice
23163         (Scan_Compiler_Arguments): Process -nostdlib directly.
23164
23165 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
23166
23167         * Makefile.in:
23168         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
23169         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
23170         included in HIE_NONE_TARGET_PAIRS.
23171
23172 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
23173
23174         * sem_attr.adb:
23175         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
23176         is legal in an instance, because legality is cheched in the template.
23177
23178         * sem_prag.adb:
23179         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
23180         appplied to an unchecked conversion of a formal parameter.
23181
23182         * sem_warn.adb:
23183         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
23184         variables.
23185
23186 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
23187
23188         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
23189         routines. The second one is new functionality to deal with backtracing
23190         through signal handlers.
23191         (unwind): Split into the two separate subroutines above.
23192         Update the documentation, and deal properly with sizeof (REG) different
23193         from sizeof (void*).
23194
23195 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
23196
23197         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
23198         so that the debugger can reliably access the value of the parameter,
23199         and therefore is able to display the exception name when an exception
23200         breakpoint is reached.
23201
23202 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
23203
23204         * fmap.adb: Fix typo in warning message.
23205
23206         * g-socket.ads, g-socket.adb: Make Free a visible instance of
23207         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
23208
23209 2003-12-01  Vincent Celier  <celier@gnat.com>
23210
23211         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
23212         ther is no Afile.
23213         (Build_Library): Get the switches only if Default_Switches is declared
23214         in package Binder.
23215
23216 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
23217
23218         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
23219         actuals that are indexed components, reanalyze actual to ensure that
23220         packed array references are properly expanded.
23221
23222         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
23223         attempted assignment to a discriminant.
23224
23225 2003-12-01  Robert Dewar  <dewar@gnat.com>
23226
23227         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
23228         reformatting.
23229
23230         * switch-c.adb: Minor reformatting of comments
23231
23232 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
23233
23234         * Makefile.in: Clean ups.
23235
23236 2003-12-01  GNAT Script  <nobody@gnat.com>
23237
23238         * Make-lang.in: Makefile automatically updated
23239
23240 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
23241
23242         * 5wsystem.ads: Disable zero cost exception, not ready yet.
23243
23244 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
23245
23246         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
23247         to force serialization.
23248
23249 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
23250
23251         * g-socket.ads, g-socket.adb:
23252         Clarify documentation of function Stream. Introduce a Free procedure
23253         to release the returned Stream once it becomes unused.
23254
23255         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
23256
23257 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
23258
23259         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
23260         since NT 4 cannot handle timeout values that are too large,
23261         e.g. DWORD'Last - 1.
23262
23263 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
23264
23265         * exp_ch4.adb:
23266         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
23267         in procedure calls and whose expansion must be deferred.
23268
23269         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
23270         is in exp_ch4.
23271
23272         * sem_ch3.adb:
23273         (Build_Derived_Array_Type): Create operator for unconstrained type
23274         if ancestor is unconstrained.
23275
23276 2003-11-26  Vincent Celier  <celier@gnat.com>
23277
23278         * make.adb (Project_Object_Directory): New global variable
23279         (Change_To_Object_Directory): New procedure
23280         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
23281         of Change_Dir directly. Do not change working directory to object
23282         directory of main project after each compilation.
23283         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
23284         directly.
23285         Change to object directory of main project before binding step.
23286         (Initialize): Initialize Project_Object_Directory to No_Project
23287
23288         * mlib-prj.adb:
23289         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
23290         binding a Stand-Alone Library.
23291
23292         * output.adb: Update Copyright notice
23293         (Write_Char): Output buffer when full
23294
23295 2003-11-26  Robert Dewar  <dewar@gnat.com>
23296
23297         * sem_ch13.adb: (Check_Size): Reset size if size is too small
23298
23299         * sem_ch13.ads:
23300         (Check_Size): Fix documentation to include bit-packed array case
23301
23302         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
23303
23304         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
23305
23306         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
23307
23308 2003-11-24  Arnaud Charlet <charlet@act-europe.fr>
23309
23310         PR ada/13142
23311         * utils.c (init_gigi_decls): Change name of built-in setjmp to
23312         __builtin_setjmp, since this is apparently needed by recent
23313         non Ada changes.
23314
23315 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
23316
23317         * adadecode.c: Only include ctype.h if not IN_GCC.
23318         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
23319
23320 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
23321
23322         * Makefile.in:
23323         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
23324         signals and interrupts.
23325
23326         * 5zintman.ads: New File.
23327
23328         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
23329         add exception signals to the set of unmasked signals.
23330
23331         * 5ztaprop.adb:
23332         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
23333         between signals and interrupts.
23334         Add to Unblocked_Signal_Mask the set of signals that are in
23335         Keep_Unmasked.
23336
23337         * 7sinmaop.adb:
23338         Adding a check to see whether the Interrupt_ID we want to unmask is in
23339         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
23340         reason is that the index type of the Keep_Unmasked array is not always
23341         Interrupt_ID; it may be a subtype of Interrupt_ID.
23342
23343 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
23344
23345         * exp_util.adb:
23346         (Remove_Side_Effects): Condition constantness of object created for a
23347          an unchecked type conversion on the constantness of the expression
23348          to ensure the correct value for 'Constrained when passing components
23349          of view-converted class-wide objects.
23350
23351 2003-11-24  Robert Dewar  <dewar@gnat.com>
23352
23353         * par-load.adb (Load): Improve handling of misspelled and missing units
23354         Removes several cases of compilation abandoned messages
23355
23356         * lib.adb: (Remove_Unit): New procedure
23357
23358         * lib.ads: (Remove_Unit): New procedure
23359
23360         * lib-load.adb: Minor reformatting
23361
23362 2003-11-24  Vincent Celier  <celier@gnat.com>
23363
23364         * make.adb:
23365         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
23366         (Marking_Label): Label to mark processed source files. Incremented for
23367         each executable.
23368         (Gnatmake): Increase Marking_Labet for each executable
23369         (Is_Marked): Compare against marking label
23370         (Mark): Mark with marking label
23371
23372 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
23373
23374         * s-thread.ads:
23375         Move the declaration of the TSD for System.Threads to System.Soft_Links.
23376         Add some comments.
23377
23378         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
23379         (rts-cert): build a single relocatable object for the run-time lib.
23380         Fix perms.
23381
23382 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
23383
23384         * Make-lang.in:
23385         Use gnatls rather than gcc to obtain the location of GNAT RTL for
23386         crosstools build.
23387
23388 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
23389
23390         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
23391         can not use it as before (that is, as a variable) when dumping it into
23392         the tree file. Add a local variable to store the result of this
23393         function and to be used as the string to be written into the tree.
23394
23395         * scn.adb (Initialize_Scanner): Add comments explaining the recent
23396         changes.
23397
23398         * sinput.adb (Source_First, Source_Last): In case of
23399         Internal_Source_File, replace returning attributes of
23400         Internal_Source_Ptr (which is wrong) with returning attributes of
23401         Internal_Source.
23402
23403 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
23404
23405         * sem_ch3.adb:
23406         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
23407         used for implicit concatenation operators.
23408         Code cleanup.
23409
23410         * sem_elab.adb:
23411         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
23412         task bodies that are in the scope of a Suppress pragma.
23413         (Check_A Call): Use the flag to prevent spurious elaboration checks.
23414
23415         * sinfo.ads, sinfo.adb:
23416         New flag No_Elaboration_Check on function/procedure calls, to properly
23417         suppress checks on calls in task bodies that are within a local suppress
23418         pragma.
23419
23420         * exp_ch4.adb:
23421         (Expand_Concatenate_Other): Use the proper integer type for the
23422         expression for the upper bound, to avoid universal_integer computations
23423         when possible.
23424
23425 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
23426
23427         * .cvsignore: Delete.
23428
23429 2003-11-21  Andreas Schwab  <schwab@suse.de>
23430
23431         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
23432
23433 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
23434
23435         * 5wsystem.ads: Enable zero cost exception.
23436
23437 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
23438
23439         * 5ztiitho.adb: Remove an unreferenced variable.
23440
23441 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
23442
23443         * adaint.c: For FreeBSD, use mkstemp.
23444
23445 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
23446
23447         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
23448
23449 2003-11-21  Robert Dewar  <dewar@gnat.com>
23450
23451         * bld.adb: Remove useless USE of gnatvsn
23452
23453         * gnatchop.adb: Minor reformatting
23454         Clean up version handling to be more consistent
23455
23456         * gnatxref.adb: Minor reformatting
23457
23458         * gprcmd.adb: Minor reformatting
23459         Fix output of copyright to be more consistent with other tools
23460
23461 2003-11-21  Vincent Celier  <celier@gnat.com>
23462
23463         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
23464
23465 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
23466
23467         * atree.adb (Initialize): Add initializations for global variables
23468         used in New_Copy_Tree.
23469
23470         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
23471         Internal_Source_File as the actual).
23472         Put the set of statements creating Any_Character before the set of
23473         statements creating Any_Array to have Any_Character fully initialized
23474         when it is used in creating Any_Array.
23475
23476         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
23477         not call Scan in case if the actual is Internal_Source_File
23478         Add 2003 to copyright note.
23479
23480         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
23481         processing Internal_Source_File.
23482
23483         * types.ads: Add the constant Internal_Source_File representing the
23484         source buffer for artificial source-code-like strings created within
23485         the compiler (the definition of Source_File_Index is changed).
23486
23487 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
23488
23489         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
23490         56system.ads: New file, FreeBSD version.
23491
23492 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
23493
23494         * Make-lang.in (ada.extraclean): Delete.
23495
23496 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
23497
23498         * gnatmem.adb: Clean up verbose output.
23499
23500         * gprcmd.adb: Change copyright to FSF.
23501
23502 2003-11-19  Vincent Celier  <celier@gnat.com>
23503
23504         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
23505         and Version (ignored).
23506
23507         * symbols.ads: (Policy): New type
23508         (Initialize): New parameter Reference, Symbol_Policy and
23509         Library_Version.
23510         Remove parameter Force.
23511         Minor reformatting.
23512
23513         * snames.ads, snames.adbadb: New standard names
23514         Library_Reference_Symbol_File and Library_Symbol_Policy
23515
23516         * mlib-prj.adb:
23517         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
23518         project.
23519
23520         * mlib-tgt.adb:
23521         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
23522
23523         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
23524
23525         * prj.adb: (Project_Empty): New component Symbol_Data
23526
23527         * prj.ads: (Policy, Symbol_Record): New types
23528         (Project_Data): New component Symbol_Data
23529
23530         * prj-attr.adb:
23531         New attributes Library_Symbol_File, Library_Symbol_Policy and
23532         Library_Reference_Symbol_File.
23533
23534         * prj-nmsc.adb:
23535         (Ada_Check): When project is a Stand-Alone library project, process
23536         attribute Library_Symbol_File, Library_Symbol_Policy and
23537         Library_Reference_Symbol_File.
23538
23539         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
23540         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
23541         5sml-tgt.adb (Build_Dynamic_Library): New parameter
23542         Symbol_Data (ignored).
23543
23544         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
23545         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
23546         functions Option_File_Name and Version_String. Set new options of
23547         gnatsym related to symbol file, symbol policy and reference symbol
23548         file.
23549
23550         * 5vsymbol.adb:
23551         Extensive modifications to take into account the reference symbol file,
23552         the symbol policy, the library version and to put in the symbol file the
23553         minor and major IDs.
23554
23555         * bld.adb (Process_Declarative_Items): Put second argument of
23556         gprcmd to_absolute between single quotes, to avoid problems with
23557         Windows.
23558
23559         * bld-io.adb: Update Copyright notice.
23560         (Flush): Remove last character of a line, if it is a back slash, to
23561         avoid make problems.
23562
23563         * gnatsym.adb:
23564         Implement new scheme with reference symbol file and symbol policy.
23565
23566         * g-os_lib.ads: (Is_Directory): Clarify comment
23567
23568 2003-11-19  Robert Dewar  <dewar@gnat.com>
23569
23570         * atree.adb: Move New_Copy_Tree global variables to head of package
23571
23572         * errout.adb: Minor reformatting
23573
23574 2003-11-19  Javier Miranda  <miranda@gnat.com>
23575
23576         * sem_ch4.adb: (Diagnose_Call): Improve error message.
23577         Add reference to Ada0Y (AI-50217)
23578
23579         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
23580         sem_util.adb: Add reference to AI-50217
23581
23582         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
23583
23584         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
23585
23586         * sem_aggr.adb: Complete documentation of AI-287 changes
23587
23588         * par-ch4.adb: Document previous changes.
23589
23590         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
23591         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
23592         Ada0Y (AI-50217)
23593
23594         * exp_aggr.adb: Add references to AI-287 in previous changes
23595
23596 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
23597
23598         * exp_ch6.adb:
23599         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
23600         in the rewriting is the result of an inlined call.
23601
23602         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
23603         parameter is a type conversion, use original node to construct the
23604         post-call assignment, because expression may have been rewritten, e.g.
23605         if it is a packed array.
23606
23607         * sem_attr.adb:
23608         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
23609         body, just as it is in an instance.
23610         Categorization routines
23611
23612         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
23613         Instantiate_Object): Set proper sloc reference for message on missing
23614         actual.
23615
23616 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
23617
23618         * Makefile.in: Add FreeBSD libgnat pairs.
23619
23620         * usage.adb: Fix typo in usage message.
23621
23622 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
23623
23624         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
23625         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
23626         pragma Thread_Body.
23627         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
23628
23629         * s-thread.adb: This file is now a dummy implementation of
23630         System.Thread.
23631
23632 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
23633
23634         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
23635
23636 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
23637
23638         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
23639         instanciation references in the parent type description.
23640
23641 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23642
23643         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
23644
23645         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
23646         TYPE_PRECISION directly from esize.
23647
23648 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
23649
23650         * cstreams.c:
23651         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
23652
23653         * init.c: Initialization routines for FreeBSD
23654
23655         * link.c: Link info for FreeBSD
23656
23657         * sysdep.c: Add the case of FreeBSD
23658
23659 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
23660
23661         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
23662         already called in System.Threads.
23663
23664         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
23665         environment task, as it has been moved to System.Threads.Initialization.
23666
23667 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
23668
23669         * adaint.c (__gnatlib_install_locks): Only reference
23670         __gnat_install_locks on VMS, since other platforms can avoid using
23671         --enable-threads=gnat
23672
23673 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23674
23675         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
23676
23677         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
23678         TYPE_PACKED_ARRAY_TYPE_P.
23679         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
23680
23681         Part of PR ada/12806
23682         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
23683         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
23684
23685 2003-11-17  Vincent Celier  <celier@gnat.com>
23686
23687         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
23688         to False.
23689         Do not set exit status to Failure when Warning is True.
23690         (Gnatchop): Make errors "no compilation units found" and
23691         "no source files written" warnings only.
23692
23693         * make.adb (Gnatmake): When using a project file, set
23694         Look_In_Primary_Dir to False.
23695         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
23696         and Local_Configuration_Pragmas in the project where they are declared
23697         not an extending project which might have inherited them.
23698
23699         * osint.adb (Locate_File): If Name is already an absolute path, do not
23700         look for a directory.
23701
23702         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
23703         -gnats (Check_Syntax) is used, issue only a warning, not an error.
23704
23705         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
23706         in objects of type Variable_Value.
23707
23708         * prj.ads: (Variable_Value): New component Project
23709
23710         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
23711         is in a project extended by Project.
23712
23713         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
23714         Project of Variable_Values to this new parameter value.
23715         (Expression): Set component Project of Variable_Values.
23716         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
23717         Set the component Project in array elements.
23718
23719 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
23720
23721         * errout.adb: (Initialize): Add initialization for error nodes.
23722
23723         * sem_ch12.adb (Initialize): Add missing initializations for
23724         Exchanged_Views and Hidden_Entities.
23725
23726 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
23727
23728         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
23729         already instantiated tree for use in subsequent inlining.
23730         (Analyze_Associations, Instantiate_Formal_Subprogram,
23731         Instantiate_Object): improve error message for mismatch in
23732         instantiations.
23733
23734         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
23735         instantiations of subprograms declared in instances.
23736
23737 2003-11-17  Javier Miranda  <miranda@gnat.com>
23738
23739         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
23740         executed only under the Extensions_Allowed flag.
23741
23742 2003-11-17  Robert Dewar  <dewar@gnat.com>
23743
23744         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
23745         zeroes suppressed.
23746         (Address_Image): Fix bug of returning 0x instead of 0x0
23747         Minor reformatting (function specs).
23748
23749         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
23750         (missed case of 33-63)
23751
23752         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
23753
23754         * s-thread.adb: Add comments for pragma Restriction
23755
23756         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
23757         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
23758
23759 2003-11-17  Ed Falis  <falis@gnat.com>
23760
23761         * s-thread.adb: Added No_Tasking restriction for this implementation.
23762
23763 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
23764
23765         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
23766         instanciation references in the parent type description.
23767
23768 2003-11-17  GNAT Script  <nobody@gnat.com>
23769
23770         * Make-lang.in: Makefile automatically updated
23771
23772 2003-11-16  Jason Merrill  <jason@redhat.com>
23773
23774         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
23775         and TAGS files that include them for each front end.
23776
23777 2003-11-14  Andreas Jaeger  <aj@suse.de>
23778
23779         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
23780         is the canonical version.
23781         * misc.c (gnat_handle_option): Likewise.
23782
23783         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
23784
23785         * 5nsystem.ads: New file for x86_64-linux-gnu.
23786
23787 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
23788
23789         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
23790
23791         * comperr.adb: Fix logic in previous change.
23792
23793 2003-11-13  Vincent Celier  <celier@gnat.com>
23794
23795         * 5bml-tgt.adb (Build_Dynamic_Library): Use
23796         Osint.Include_Dir_Default_Prefix instead of
23797         Sdefault.Include_Dir_Default_Name.
23798
23799         * gnatlbr.adb: Update Copyright notice
23800         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
23801         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
23802         instead of Sdefault.Object_Dir_Default_Name
23803
23804         * gnatlink.adb:
23805         (Process_Binder_File): Never suppress the option following -Xlinker
23806
23807         * mdll-utl.adb:
23808         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
23809         Sdefault.Object_Dir_Default_Name.
23810
23811         * osint.ads, osint.adb:
23812         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
23813         Minor reformatting.
23814
23815         * vms_conv.ads: Minor reformating
23816         Remove GNAT STANDARD and GNAT PSTA
23817
23818         * vms_conv.adb:
23819         Allow GNAT MAKE to have several files on the command line.
23820         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
23821         Sdefault.Object_Dir_Default_Name.
23822         Minor Reformating
23823         Remove data for GNAT STANDARD
23824
23825         * vms_data.ads:
23826         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
23827         Remove data for GNAT STANDARD
23828         Remove options and documentation for -gnatwb/-gnatwB: these warning
23829         options no longer exist.
23830
23831 2003-11-13  Ed Falis  <falis@gnat.com>
23832
23833         * 5zthrini.adb: (Init_RTS): Made visible
23834
23835         * 5zthrini.adb:
23836         (Register): Removed unnecessary call to taskVarGet that checked whether
23837          an ATSD was already set as a task var for the argument thread.
23838
23839         * s-thread.adb:
23840         Updated comment to reflect that this is a VxWorks version
23841         Added context clause for System.Threads.Initialization
23842         Added call to System.Threads.Initialization.Init_RTS
23843
23844 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
23845
23846         * 5zthrini.adb:
23847         (Init_RTS): New procedure, for the initialization of the run-time lib.
23848
23849         * s-thread.adb:
23850         Remove dependancy on System.Init, so that this file can be used in the
23851         AE653 sequential run-time lib.
23852
23853 2003-11-13  Robert Dewar  <dewar@gnat.com>
23854
23855         * bindgen.adb: Minor reformatting
23856
23857 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
23858
23859         * checks.adb:
23860         (Apply_Discriminant_Check): Do no apply check if target type is derived
23861         from source type with no applicable constraint.
23862
23863         * lib-writ.adb:
23864         (Ensure_System_Dependency): Do not apply the style checks that may have
23865         been specified for the main unit.
23866
23867         * sem_ch8.adb:
23868         (Find_Selected_Component): Further improvement in error message, with
23869         RM reference.
23870
23871         * sem_res.adb:
23872         (Resolve): Handle properly the case of an illegal overloaded protected
23873         procedure.
23874
23875 2003-11-13  Javier Miranda  <miranda@gnat.com>
23876
23877         * exp_aggr.adb:
23878         (Has_Default_Init_Comps): New function to check the presence of
23879         default initialization in an aggregate.
23880         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
23881         extension aggregate of a limited record. In addition, a new formal
23882         was added to do not initialize the record controller (if any) during
23883         this recursive expansion of ancestors.
23884         (Init_Controller): Add support for limited record components.
23885         (Expand_Record_Aggregate): In case of default initialized components
23886         convert the aggregate into a set of assignments.
23887
23888         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
23889         describing the new syntax.
23890         Nothing else needed to be done because this subprogram delegates part of
23891         its work to P_Precord_Or_Array_Component_Association.
23892         (P_Record_Or_Array_Component_Association): Give support to the new
23893         syntax for default initialization of components.
23894
23895         * sem_aggr.adb:
23896         (Resolve_Aggregate): Relax the strictness of the frontend in case of
23897         limited aggregates.
23898         (Resolve_Record_Aggregate): Give support to default initialized
23899         components.
23900         (Get_Value): In case of default initialized components, duplicate
23901         the corresponding default expression (from the record type
23902         declaration). In case of default initialization in the *others*
23903         choice, do not check that all components have the same type.
23904         (Resolve_Extension_Aggregate): Give support to limited extension
23905         aggregates.
23906
23907         * sem_ch3.adb:
23908         (Check_Initialization): Relax the strictness of the front-end in case
23909         of aggregate and extension aggregates. This test is now done in
23910         Get_Value in a per-component manner.
23911
23912         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
23913         expression corresponds to a limited aggregate. This test is now done
23914         in Get_Value.
23915
23916         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
23917         Box_Present flag.
23918
23919         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
23920         present in an N_Component_Association node
23921
23922 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
23923
23924         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
23925         type-conformant entry only if they are homographs.
23926
23927 2003-11-13  GNAT Script  <nobody@gnat.com>
23928
23929         * Make-lang.in: Makefile automatically updated
23930
23931 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
23932
23933         * adadecode.c: Use <> form of include for ctype.h.
23934         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
23935
23936 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
23937
23938         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
23939         Works around PR middle-end/6552.
23940
23941 2003-11-10  Ed Falis  <falis@gnat.com>
23942
23943         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
23944
23945         * 5zinit.adb: (Install_Handler): Moved back to spec
23946         (Install_Signal_Handlers): Deleted
23947
23948         * 5zthrini.adb: Added context clause for System.Storage_Elements
23949         (Register): Only handles creation of taskVar; initialization moved to
23950         Thread_Body_Enter.
23951         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
23952         Added declaration of environment task secondary stack and
23953         initialization.
23954
23955         * s-thread.adb: Implement bodies for thread body processing
23956
23957         * s-thread.ads:
23958         Added comment identifying supported targets for pragma Thread_Body.
23959
23960 2003-11-10  Pascal Obry  <obry@gnat.com>
23961
23962         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
23963         GNAT_MAX_PATH_LEN.
23964
23965         * s-fileio.adb:
23966         (Open): Properly check for string length before copying into the buffer.
23967         Raises Name_Error if buffer is too small. Note that this was a potential
23968         buffer overflow.
23969
23970 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
23971
23972         * bindgen.adb, comperr.adb: Code clean ups.
23973         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
23974
23975 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
23976
23977         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
23978
23979 2003-11-10  Vincent Celier  <celier@gnat.com>
23980
23981         * gprcmd.adb:
23982         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
23983         installation.
23984
23985         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
23986
23987         * prj.adb: (Project_Empty): Add new boolean component Virtual
23988
23989         * prj.ads: (Virtual_Prefix): New constant string
23990         (Project_Data): New boolean component Virtual
23991
23992         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
23993         a library project is extended by a virtual extending project.
23994
23995         * prj-part.adb:
23996         Modifications throughout to implement extending-all project, including:
23997         (Virtual_Hash, Processed_Hash): New hash tables
23998         (Create_Virtual_Extending_Project): New procedure
23999         (Look_For_Virtual_Projects_For): New procedure
24000
24001         * prj-proc.adb:
24002         (Process): After checking the projects, if main project is an
24003         extending-all project, set the object directory of all virtual extending
24004         project to the object directory of the main project.
24005         Adjust error message when a virtual extending project has the same
24006         object directory as an project being extended.
24007         (Recursive_Process): If name starts with the virtual prefix, set Virtual
24008         to True in the project data.
24009
24010         * prj-tree.adb:
24011         (Default_Project_Node): Add new boolean component Extending_All
24012         (Is_Extending_All): New function
24013         (Set_Is_Extending_All): New procedure
24014
24015         * prj-tree.ads: (Is_Extending_All): New function
24016         (Set_Is_Extending_All): New procedure
24017         (Project_Node_Record): New boolean component Extending_All
24018
24019         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
24020
24021         * vms_data.ads:
24022         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
24023
24024         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
24025         "gprcmd prefix" to define it.
24026
24027 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
24028
24029         * einfo.ads: Fix a typo and remove an extraneous word in comments.
24030
24031         * lib-load.adb:
24032         (Create_Dummy_Package_Unit): Set the scope of the entity for the
24033         created dummy package to Standard_Standard, not to itself, to
24034         defend other parts of the front-end against encoutering a cycle in
24035         the scope chain.
24036
24037         * sem_ch10.adb:
24038         (Analyze_With_Clause): When setting the entities for the successive
24039         N_Expanded_Names that constitute the name of a child unit, do not
24040         attempt to go further than Standard_Standard in the chain of scopes.
24041         This case arises from the placeholder units created by
24042         Create_Dummy_Package_Unit in the case of a with_clause for a
24043         nonexistent child unit.
24044
24045 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
24046
24047         * exp_ch6.adb:
24048         (Expand_Thread_Body): Place subprogram on scope stack, so that new
24049         declarations are given the proper scope.
24050
24051         * sem_ch13.adb:
24052         (Check_Expr_Constants): Reject an expression that contains a constant
24053         created during expansion, and that appears after the object to which
24054         the address clause applies.
24055
24056         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
24057         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
24058         that uses 'Range of a function call with controlled components, so
24059         that the function result can be finalized before starting the loop.
24060
24061         * sem_ch8.adb:
24062         (Find_Selected_Component): Improve error message when prefix is
24063         an implicit dereference of an incomplete type.
24064
24065 2003-11-10  Robert Dewar  <dewar@gnat.com>
24066
24067         * opt.ads: New Print_Standard flag for -gnatS switch
24068
24069         * sem_ch13.adb: Remove some additional checks for unaligned arrays
24070
24071         * cstand.adb (Create_Standard): Print out package standard if -gnatS
24072         switch set
24073
24074         * debug.adb: Update doc for -gnatds to discuss relationship with new
24075         -gnatS flag
24076
24077         * sinfo.adb: Add new field Entity_Or_Associated_Node
24078
24079         * sinfo.ads: Add new field Entity_Or_Associated_Node
24080         Update documentation for Associated_Node and Entity fields to clarify
24081         relationship and usage.
24082
24083         * sprint.adb:
24084         (Write_Id): Properly process Associated_Node field in generic template
24085
24086         * switch-c.adb:
24087         Recognize new -gnatS switch for printing package Standard
24088         This replaces gnatpsta
24089
24090         * usage.adb:
24091         Add line for  new -gnatS switch for printing package Standard
24092         This replaces gnatpsta
24093
24094 2003-11-10  Andreas Jaeger  <aj@suse.de>
24095
24096         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
24097         integer.
24098
24099 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
24100
24101         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
24102         by gnat1.
24103
24104 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
24105
24106         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
24107         no longer needed.
24108
24109         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
24110
24111         * sysdep.c: Add handling of cygwin.
24112
24113 2003-11-10  GNAT Script  <nobody@gnat.com>
24114
24115         * Make-lang.in: Makefile automatically updated
24116
24117 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
24118
24119         PR 12950
24120         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
24121         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
24122         Replace GNAT_ROOT by GCC_ROOT.
24123
24124         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
24125
24126 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
24127
24128         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
24129         and update for changed meaning of GET_MODE_BITSIZE.
24130
24131 2003-11-04  Doug Rupp  <rupp@gnat.com>
24132
24133         * sysdep.c: Problem discovered during IA64 VMS port.
24134         [VMS] #include <unixio.h> to get proper prototypes.
24135
24136         * adaint.c:
24137         Issues discovered/problems fixed during IA64 VMS port.
24138         [VMS] #define _POSIX_EXIT for proper semantics.
24139         [VMS] #include <unixio.h> for proper prototypes.
24140         [VMS] (fork): #define IA64 version.
24141         (__gnat_os_exit): Remove unnecessary VMS specific code.
24142
24143 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24144
24145         Part of PR ada/12806
24146         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
24147         tree, not integer.
24148
24149         * decl.c:
24150         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
24151         not integer.
24152
24153         * targtyps.c, decl.c, misc.c,
24154         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
24155         routines to work around change in FP sizing semantics in GCC.
24156
24157         * utils.c:
24158         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
24159
24160         * gigi.h: (enumerate_modes): New function.
24161
24162         * Make-lang.in: (ada/misc.o): Add real.h.
24163
24164         * misc.c: (enumerate_modes): New function.
24165
24166 2003-11-04  Robert Dewar  <dewar@gnat.com>
24167
24168         * 3vtrasym.adb: Minor reformatting
24169         Use terminology encoded/decoded name, rather than C++ specific notion
24170         of mangling (this is the terminology used throughout GNAT).
24171
24172         * einfo.h: Regenerated
24173
24174         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
24175
24176         * exp_ch6.adb:
24177         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
24178
24179         * par-prag.adb: Add dummy entry for Thread_Body pragma
24180
24181         * rtsfind.ads:
24182         Add entries for System.Threads entities for thread body processing
24183
24184         * sem_attr.adb:
24185         (Analyze_Pragma, Access attributes): Check these are not applied to a
24186         thread body, since this is not permitted
24187
24188         * sem_prag.adb: Add processing for Thread_Body pragma.
24189         Minor comment fix.
24190
24191         * sem_res.adb:
24192         (Resolve_Call): Check for incorrect attempt to call a thread body
24193          procedure with a direct call.
24194
24195         * snames.ads, snames.adb: Add entry for Thread_Body pragma
24196         Add names associated with thread body expansion
24197
24198         * snames.h: Add entry for Thread_Body pragma
24199
24200         * s-thread.adb: Add entries for thread body processing
24201         These are dummy bodies so far
24202
24203         * s-thread.ads: Add documentation on thread body handling.
24204         Add entries for thread body processing.
24205
24206 2003-11-04  Javier Miranda  <miranda@gnat.com>
24207
24208         * sem_ch10.adb:
24209         (Build_Limited_Views): Return after posting an error in case of limited
24210         with_clause on subprograms, generics, instances or generic renamings
24211         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
24212         on subprograms, generics, instances or generic renamings
24213
24214 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
24215
24216         * raise.c (setup_to_install): Correct mistake in last revision; two
24217         arguments out of order.
24218
24219         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
24220         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
24221         notice, missed in previous change.
24222         Remove trailing blanks and other style errors introduced in previous
24223         change.
24224
24225 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
24226
24227         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
24228         rid of the wrapper for a LJM type, ensuring we don't do that if the
24229         field is addressable.  This avoids potential low level type view
24230         mismatches later on, for instance in a by-reference argument passing
24231         process.
24232
24233 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24234
24235         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
24236         aligned at byte boundary.
24237
24238 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
24239
24240         * decl.c (components_to_record): Do not delete the empty variants from
24241         the end of the union type.
24242
24243 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
24244
24245         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
24246         operation for a derived type, an explicit declaration may use a local
24247         subtype of Boolean.
24248
24249 2003-11-04  Vincent Celier  <celier@gnat.com>
24250
24251         * make.adb (Gnatmake): Allow main sources on the command line with a
24252         library project when it is only for compilation (no binding or
24253         linking).
24254
24255 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
24256
24257         * Makefile.in: Remove many duplicate variables.
24258
24259 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
24260
24261         * Make-lang.in (dvi): Move targets to $(docobjdir).
24262         (gnat_ug_vms.dvi): Simplify rule and adjust target.
24263         (gnat_ug_wnt.dvi): Likewise.
24264         (gnat_ug_unx.dvi): Likewise.
24265         (gnat_ug_vxw.dvi): Likewise.
24266         (gnat_rm.dvi): Likewise.
24267         (gnat-style.dvi): Likewise.
24268
24269 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
24270
24271         * gigi.h: Missed commit from update for C90.
24272
24273 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
24274
24275         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
24276
24277 2003-10-31  Andreas Schwab  <schwab@suse.de>
24278
24279         * raise.c (get_action_description_for): Fix typo in last change.
24280
24281 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
24282
24283         PR ada/12761
24284         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
24285         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
24286
24287 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
24288
24289         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
24290         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
24291         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
24292         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
24293         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
24294
24295 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
24296
24297         * 3vtrasym.adb:
24298         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
24299         numbers when symbol name is too long.
24300
24301 2003-10-30  Ed Falis  <falis@gnat.com>
24302
24303         * g-signal.ads, g-signal.adb: New files
24304
24305         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
24306
24307         * Makefile.rtl: Introduce GNAT.Signals
24308
24309 2003-10-30  Robert Dewar  <dewar@gnat.com>
24310
24311         * freeze.adb: Minor reformatting
24312
24313         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
24314
24315         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
24316         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
24317         New handling of Id_Check parameter to improve recognition of keywords
24318         used as identifiers.
24319         Update copyright notice to include 2003
24320
24321 2003-10-29  Robert Dewar  <dewar@gnat.com>
24322
24323         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
24324         sem_ch10.adb: Minor reformatting
24325
24326         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
24327         (Expand_Assign_Record): Test right hand side for bit unaligned as well
24328
24329 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
24330
24331         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
24332         Support for TBK$SYMBOLIZE-based symbolic traceback.
24333
24334 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
24335
24336         * exp_disp.adb:
24337         Revert previous change, that did not work well when pragma No_Run_Time
24338         was used in conjunction with a run-time other than ZFP.
24339
24340 2003-10-29  Vincent Celier  <celier@gnat.com>
24341
24342         * make.adb:
24343         (Gnatmake): When there are no Ada mains in attribute Main, disable the
24344          bind and link steps only is switch -z is not used.
24345
24346 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
24347
24348         * Makefile.generic: Remove duplicated setting of CC.
24349
24350         * Makefile.prolog: Set CC to gcc by default, to override make's
24351         default (cc).
24352
24353         * einfo.h: Regenerated.
24354
24355 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
24356
24357         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
24358         current body, after compiling subunit.
24359
24360         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
24361         when in deleted code, because gigi needs properly ordered freeze
24362         actions to annotate types.
24363
24364         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
24365         prevent the premature freezing of record type that contains
24366         subcomponents with a private type that does not yet have a completion.
24367
24368 2003-10-29  Javier Miranda  <miranda@gnat.com>
24369
24370         * sem_ch12.adb:
24371         (Analyze_Package_Instantiation): Check that instances can not be used in
24372         limited with_clauses.
24373
24374         * sem_ch8.adb:
24375         (Analyze_Package_Renaming): Check that limited withed packages cannot
24376         be renamed. Improve text on error messages related to limited
24377         with_clauses.
24378
24379         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
24380
24381         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
24382         Update copyright notice.
24383
24384         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
24385         (Install_Limited_Context_Clauses): New subprogram that isolates all the
24386         checks required for limited context_clauses and installs the limited
24387         view.
24388         (Install_Limited_Withed_Unit): Complete its documentation.
24389         (Analyze_Context): Check that limited with_clauses are only allowed in
24390         package specs.
24391         (Install_Context): Call Install_Limited_Context_Clauses after the
24392         parents have been installed.
24393         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
24394         package as 'From_With_Type'; this mark indicates that the limited view
24395         is installed. Used to check bad usages of limited with_clauses.
24396         (Build_Limited_Views): Do not add shadow entities to the scope's list
24397         of entities. Do not add real entities to the Non_Limited_Views chain.
24398         Improve error notification.
24399         (Remove_Context_Clauses): Remove context clauses in two phases:
24400         limited views first and regular views later (to maintain the
24401         stack model).
24402         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
24403         its visible entities.
24404
24405 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
24406
24407         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
24408         with any type that Is_Fixed_Point_Type.
24409
24410         * sinfo.ads: Fix documentation for Associated_Node attribute.
24411
24412 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
24413
24414         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
24415         both '-gnatc' and '-gnatt' are specified.
24416
24417         * atree.adb (Initialize): Add initialization for Node_Count (set to
24418         zero).
24419
24420 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24421
24422         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
24423         do not consider as Pure.
24424
24425         Part of implementation of function-at-a-time:
24426
24427         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
24428         (tree_transform): Add new argument to build_component_ref.
24429         (tree_transform, case N_Assignment_Statement): Make and return an
24430         EXPR_STMT.
24431         (tree_transform): If result IS_STMT, set flags and return it.
24432         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
24433
24434         * utils2.c (build_simple_component_ref, build_component_ref): Add new
24435         arg, NO_FOLD_P.
24436         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
24437         (build_allocator): Likewise.
24438
24439         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
24440         Add new arg to build_component_ref.
24441         (maybe_unconstrained_array, unchecked_convert): Likewise.
24442
24443         * ada-tree.def (EXPR_STMT): New code.
24444
24445         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
24446
24447         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
24448         build_component_ref calls.
24449
24450         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
24451
24452         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
24453         (build_component_ref): Add new argument, NO_FOLD_P.
24454
24455 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
24456
24457         * Makefile.generic: Add missing substitution on object_deps handling.
24458
24459         PR ada/5909
24460         * Make-lang.in (check-ada): Enable ACATS test suite.
24461
24462 2003-10-27  Robert Dewar  <dewar@gnat.com>
24463
24464         * exp_ch3.adb:
24465         (Freeze_Array_Type): We do not need an initialization routine for types
24466         derived from String or Wide_String. They should be treated the same
24467         as String and Wide_String themselves. This caused problems with the
24468         use of Initialize_Scalars.
24469
24470         * exp_ch5.adb:
24471         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
24472         composites. This allows use of component clauses that are not byte
24473         aligned.
24474
24475         * sem_prag.adb:
24476         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
24477         is an attempt to pack an array of atomic objects.
24478
24479         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
24480
24481 2003-10-27  Pascal Obry  <obry@gnat.com>
24482
24483         * g-dirope.adb:
24484         (Basename): Check for drive letters in a pathname only on DOS based OS.
24485
24486 2003-10-27  Vincent Celier  <celier@gnat.com>
24487
24488         * make.adb:
24489         (Gnatmake): When unable to change dir to the object dir, display the
24490         content of the parent dir of the obj dir, to try to understand why this
24491         happens.
24492
24493 2003-10-27  GNAT Script  <nobody@gnat.com>
24494
24495         * Make-lang.in: Makefile automatically updated
24496
24497 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
24498
24499         * sem_ch12.adb:
24500         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
24501         should not be done in Save/Restore_Scope_Stack, because it is performed
24502         locally.
24503
24504         * sem_ch8.adb:
24505         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
24506         whether use clauses should be removed/restored.
24507
24508         * sem_ch8.ads:
24509         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
24510         whether use clauses should be removed/restored.
24511
24512 2003-10-26  Andreas Jaeger  <aj@suse.de>
24513
24514         * Makefile.in: Remove duplicated lines.
24515
24516 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
24517
24518         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
24519         minimize the differences with ACT tree.
24520
24521         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
24522         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
24523         Gnatvsn.Gnat_Static_Version_String to reduce differences between
24524         ACT and FSF trees.
24525
24526 2003-10-24  Pascal Obry  <obry@gnat.com>
24527
24528         PR ada/12014
24529         * adadecode.c (ostrcpy): New function.
24530         (__gnat_decode): Use ostrcpy of strcpy.
24531         (has_prefix): Set first parameter a const.
24532         (has_suffix): Set first parameter a const.
24533         Update copyright notice. Fix source name in header.
24534         Removes a trailing space.
24535
24536 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
24537
24538         * exp_disp.adb:
24539         Remove the test against being in No_Run_Time_Mode before generating a
24540         call to Register_Tag. It is redundant with the test against the
24541         availability of the function Register_Tag.
24542
24543 2003-10-24  Vincent Celier  <celier@gnat.com>
24544
24545         * g-catiio.adb: (Month_Name): Correct spelling of February
24546
24547         * make.adb: (Mains): New package
24548         (Initialize): Call Mains.Delete
24549         (Gnatmake): Check that each main on the command line is a source of a
24550         project file and, if there are several mains, each of them is a source
24551         of the same project file.
24552         (Gnatmake): When a foreign language is specified in attribute Languages,
24553         no main is specified on the command line and attribute Mains is not
24554         empty, only build the Ada main. If there is no Ada main, just compile
24555         the Ada sources and their closure.
24556         (Gnatmake): If a main is specified on the command line with directory
24557         information, check that the source exists and, if it does, that the path
24558         is the actual path of a source of a project.
24559
24560         * prj-env.adb:
24561         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
24562         Full_Path is True, return the full path instead of the simple file name.
24563         (Project_Of): New function
24564
24565         * prj-env.ads:
24566         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
24567         defaulted to False.
24568         (Project_Of): New function
24569
24570 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
24571
24572         * Makefile.generic:
24573         Ensure objects of main project are always checked and rebuilt if needed.
24574         Set CC to gcc by default.
24575         Prepare new handling of link by creating a global archive (not activated
24576         yet).
24577
24578         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
24579         stringt.h: Update copyright notice. Remove trailing blanks.
24580         Fix source name in header.
24581
24582 2003-10-24  Robert Dewar  <dewar@gnat.com>
24583
24584         * sem_ch12.adb: Minor reformatting
24585
24586         * sem_ch3.adb:
24587         Minor reformatting (including new function return style throughout)
24588
24589         * sem_ch3.ads:
24590         Minor reformatting (including new function return style throughout)
24591
24592 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
24593
24594         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
24595         stringt.h: Update copyright notice. Remove trailing blanks.
24596         Fix source name in header.
24597
24598 2003-10-24  GNAT Script  <nobody@gnat.com>
24599
24600         * Make-lang.in: Makefile automatically updated
24601
24602 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
24603
24604         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
24605         stringt.h: Convert to ISO C90 declarations and definitions.
24606
24607 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
24608
24609         PR ada/11978
24610         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
24611         External_Tag attribute definition clauses.
24612
24613 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
24614
24615         PR ada/7613
24616         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
24617         child unit, generate a fully qualified name to avoid spurious errors
24618         when the context contains renamings of different child units with
24619         the same simple name.
24620
24621         * exp_dbug.ads: Add documentation on name qualification for renamings
24622         of child units.
24623
24624 2003-10-23  Robert Dewar  <dewar@gnat.com>
24625
24626         * g-regpat.ads, g-regpat.adb: Minor reformatting
24627
24628 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
24629
24630         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
24631
24632 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24633
24634         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
24635         Machine call.
24636
24637         * urealp.h: (Machine): Update to proper definition.
24638
24639 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
24640
24641         * init.c, adaint.c: Minor reformatting.
24642
24643 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
24644
24645         * adaint.c (w32_epoch_offset): Define static const at file level.
24646         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
24647         rather than t_create, t_access in call to GetFileTime. Use union
24648         to convert between FILETIME and  unsigned long long.
24649         (__gnat_file_time_name): Test for invalid file handle.
24650         (__gnat_set_filetime_name): Support win32 targets using
24651         w32api SetFileTime.
24652
24653 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
24654
24655         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
24656
24657         * ctrl_c.c (__gnat_int_handler): Remove declaration.
24658
24659         * decl.c (creat_concat_name):  Const-ify prefix.
24660
24661         * adaint.c: Include ctype.h if __MINGW32__.
24662         (__gnat_readlink): Mark arguments as possibly unused.
24663         (__gnat_symlink): Likewise.
24664         (__gnat_is_symbolic_link): Likewise.
24665         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
24666         declaration
24667         (__gnat_file_time_name): Don't declare struct stat statbuf when
24668         not needed.
24669         (__gnat_is_absolute_path): Add parenthesis around condition of
24670         'if' statement to avoid warning.
24671         (__gnat_plist_init): Specify void as parameter.
24672         (plist_enter): Likewise.
24673         (plist_leave): Likewise.
24674         (remove_handle): Make static. Initialize prev.
24675
24676 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
24677
24678         PR ada/10110
24679         * Makefile.in: Disable build of gnatpsta.
24680         * cstreams.c (__gnat_full_name): Minor improvements and clean up
24681         of previous change.
24682
24683 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
24684
24685         * tracebak.c (MAX): Avoid redefinition warning.
24686
24687         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
24688         Change msg to const char *.
24689         (__gnat_install_handler): Remove ss, unused.
24690         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
24691         to const char *.
24692         * cstreams.c (__gnat_full_name): Declare p only when used.
24693         (__gnat_full_name) [sgi] Return buffer.
24694
24695 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
24696
24697         * mingw32.h: New file.
24698         * gnat_wrapper.adb: New file.
24699
24700 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
24701
24702         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
24703         string match a pre compiled regular expression (the corresponding
24704         version of the function working on a raw regular expression)
24705         Fix typos in various comments
24706         Update copyright notice in spec
24707
24708 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
24709
24710         * exp_ch3.adb:
24711         (Component_Needs_Simple_Initialization): Return False when the type is a
24712         packed bit array. Revise spec comments to document this case.
24713
24714         * exp_prag.adb:
24715         (Expand_Pragma_Import): Set any expression on the imported object to
24716         empty to avoid initializing imported objects (in particular this
24717         covers the case of zero-initialization of bit arrays).
24718         Update copyright notice.
24719
24720 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
24721
24722         * sem_ch12.adb:
24723         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
24724         a subunit is missing.
24725         (Instantiate_Subprogram_Body): If body of function is missing, set type
24726         of return expression explicitly in dummy body, to prevent cascaded
24727         errors when a subunit is missing.
24728         Fixes PR 5677.
24729
24730         * sem_ch3.adb:
24731         (Access_Subprogram_Declaration): Verify that return type is valid.
24732         Fixes PR 8693.
24733
24734         * sem_elab.adb:
24735         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
24736         generic.
24737         Fixes PR 12318.
24738
24739         * sem_util.adb:
24740         (Corresponding_Discriminant): If the scope of the discriminant is a
24741         private type without discriminant, use its full view.
24742         Fixes PR 8247.
24743
24744 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
24745
24746         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
24747         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
24748         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
24749         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
24750         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
24751         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
24752         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
24753         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
24754         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
24755         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
24756         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
24757         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
24758         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
24759         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
24760         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
24761         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
24762         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
24763         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
24764         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
24765         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
24766         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
24767         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
24768         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
24769         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
24770         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
24771         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
24772         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
24773         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
24774         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
24775         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
24776         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
24777         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
24778         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
24779         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
24780         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
24781         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
24782         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
24783         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
24784         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
24785         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
24786         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
24787         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
24788         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
24789         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
24790         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
24791         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
24792         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
24793         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
24794         vms_conv.ads, vms_conv.adb, vms_data.ads,
24795         vxaddr2line.adb: Files added. Merge with ACT tree.
24796
24797         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
24798         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
24799         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
24800         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
24801         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
24802         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
24803         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
24804         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
24805         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
24806         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
24807
24808         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
24809         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
24810         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
24811         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
24812         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
24813         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
24814         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
24815         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
24816         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
24817         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
24818         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
24819         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
24820         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
24821         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
24822         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
24823         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
24824         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
24825         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
24826         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
24827         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
24828         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
24829         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
24830         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
24831         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
24832         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
24833         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
24834         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
24835         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
24836         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
24837         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
24838         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
24839         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
24840         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
24841         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
24842         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
24843         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
24844         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
24845         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
24846         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
24847         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
24848         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
24849         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
24850         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
24851         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
24852         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
24853         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
24854         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
24855         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
24856         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
24857         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
24858         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
24859         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
24860         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
24861         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
24862         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
24863         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
24864         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
24865         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
24866         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
24867         checks.adb, checks.ads, cio.c, comperr.adb,
24868         comperr.ads, csets.adb, cstand.adb, cstreams.c,
24869         debug_a.adb, debug_a.ads, debug.adb, decl.c,
24870         einfo.adb, einfo.ads, errout.adb, errout.ads,
24871         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
24872         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
24873         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
24874         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
24875         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
24876         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
24877         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
24878         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
24879         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
24880         fe.h, fmap.adb, fmap.ads, fname.adb,
24881         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
24882         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
24883         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
24884         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
24885         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
24886         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
24887         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
24888         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
24889         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
24890         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
24891         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
24892         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
24893         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
24894         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
24895         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
24896         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
24897         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
24898         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
24899         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
24900         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
24901         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
24902         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
24903         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
24904         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
24905         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
24906         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
24907         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
24908         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
24909         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
24910         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
24911         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
24912         layout.adb, lib.adb, lib.ads, lib-list.adb,
24913         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
24914         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
24915         link.c, live.adb, make.adb, make.ads,
24916         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
24917         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
24918         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
24919         misc.c, mkdir.c, mlib.adb, mlib.ads,
24920         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
24921         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
24922         namet.adb, namet.ads, namet.h, nlists.ads,
24923         nlists.h, nmake.adt, opt.adb, opt.ads,
24924         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
24925         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
24926         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
24927         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
24928         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
24929         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
24930         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
24931         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
24932         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
24933         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
24934         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
24935         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
24936         prj-util.adb, prj-util.ads, raise.c, raise.h,
24937         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
24938         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
24939         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
24940         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
24941         scans.ads, scn.adb, scn.ads, s-crc32.adb,
24942         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
24943         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
24944         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
24945         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
24946         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
24947         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
24948         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
24949         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
24950         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
24951         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
24952         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
24953         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
24954         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
24955         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
24956         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
24957         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
24958         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
24959         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
24960         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
24961         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
24962         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
24963         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
24964         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
24965         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
24966         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
24967         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
24968         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
24969         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
24970         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
24971         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
24972         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
24973         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
24974         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
24975         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
24976         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
24977         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
24978         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
24979         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
24980         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
24981         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
24982         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
24983         stringt.adb, stringt.ads, stringt.h, style.ads,
24984         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
24985         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
24986         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
24987         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
24988         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
24989         table.adb, table.ads, targparm.adb, targparm.ads,
24990         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
24991         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
24992         ttypes.ads, types.ads, types.h, uintp.adb,
24993         uintp.ads, uintp.h, uname.adb, urealp.adb,
24994         urealp.ads, urealp.h, usage.adb, utils2.c,
24995         utils.c, validsw.adb, validsw.ads, widechar.adb,
24996         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
24997         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
24998         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
24999         gnatvsn.ads: Merge with ACT tree.
25000
25001         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
25002
25003 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
25004
25005         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
25006         (gnat_ug_vmx.info): Likewise.
25007         (gnat_ug_vxw.info): Likewise.
25008         (gnat_ug_wnt.info): Likewise.
25009         (gnat_rm.info): Likewise.
25010         (gnat-style.info): Likewise.
25011
25012         * Make-lang.in (ada.install-info): Remove target.
25013         (info): New target.
25014         (install-info): Likewise.
25015         (gnat_ug_unx.info): Simplify rule.
25016         (gnat_ug_vmx.info): Likewise.
25017         (gnat_ug_vxw.info): Likewise.
25018         (gnat_ug_wnt.info): Likewise.
25019         (gnat_rm.info): Likewise.
25020         (gnat-style.info): Likewise.
25021
25022 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
25023
25024         * Make-lang.in: Replace uses of $(target_alias) with
25025         $(target_noncanonical).
25026         * ada/Makefile.in: Remove unused mention of $(target_alias).
25027
25028 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
25029
25030         * Make-lang.in (ada.info): Replace with ...
25031         (info): ... this.
25032         (ada.dvi): Replace with ...
25033         (dvi): ... this.
25034
25035 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
25036
25037         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
25038         initialize dconstp5 and dconstmp5.
25039
25040 2003-09-28  Richard Henderson  <rth@redhat.com>
25041
25042         * trans.c (tree_transform): Update call to expand_asm_operands.
25043
25044 2003-09-21  Richard Henderson  <rth@redhat.com>
25045
25046         * trans.c, utils.c: Revert.
25047
25048 2003-09-21  Richard Henderson  <rth@redhat.com>
25049
25050         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
25051         change to const.
25052
25053 2003-09-04  Michael Matz  <matz@suse.de>
25054
25055         * misc.c: Include "target.h".
25056         * Make-lang.in (misc.o): Add dependency on target.h.
25057
25058 2003-09-03  DJ Delorie  <dj@redhat.com>
25059
25060         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
25061         hook.
25062
25063 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
25064
25065         * Makefile.in: Update substitutions to match changes to
25066         configure.  Use include directives instead of @-insertions
25067         to read in host and target fragments.  Add a rule to
25068         regenerate ada/Makefile.
25069
25070 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
25071
25072         * lang-options.h: Remove.
25073         * lang.opt: Add help text.
25074
25075 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
25076
25077         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
25078         calls.
25079
25080 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
25081
25082         * misc.c (gnat_handle_option): Don't handle filenames.
25083
25084 2003-07-04  H.J. Lu <hongjiu.lu@intel.com>
25085
25086         * Make-lang.in: Replace PWD with PWD_COMMAND.
25087         * Makefile.adalib: Likewise.
25088         * Makefile.in: Likewise.
25089
25090 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
25091
25092         * misc.c (gnat_argv): Revert last change.
25093         (gnat_handle_option, gnat_init_options): Copy arguments.
25094
25095 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
25096
25097         * misc.c (gnat_argv): Make const.
25098
25099 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
25100
25101         * misc.c (save_argc, save_argv): Keep non-static!
25102
25103 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
25104
25105         * misc.c (save_argc, save_argv): Make static.
25106         (gnat_init_options): New prototype.
25107         (gnat_init_options): Update.
25108
25109 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
25110
25111         * gnat_ug.texi: Remove unlikely characters from @vars.
25112         * gnat_ug_vms.texi: Regenerate.
25113
25114 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
25115
25116         * misc.c (record_code_position): Adjust emit_note call.
25117
25118 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
25119
25120         * misc.c (gnat_handle_option): Don't check for missing arguments.
25121
25122 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
25123
25124         * utils.c (end_subprog_body): Adjust expand_function_end call.
25125
25126 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
25127
25128         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
25129         Bind_Main_Program.
25130
25131 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
25132
25133         * lang.opt: Declare Ada.
25134         * misc.c (gnat_init_options): Update.
25135
25136 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
25137
25138         * utils.c (begin_subprog_body): Adjust init_function_start call.
25139
25140 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
25141
25142         * Make-lang.in: Update to use options.c and options.h.
25143         * misc.c: Include options.h not aoptions.h.
25144         (gnat_handle_option): Abort on unrecognized switch.
25145         (gnat_init_options): Request Ada switches.
25146
25147 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
25148
25149         * lang.opt: Add -Wall.
25150         * misc.c (gnat_handle_option): Handle it.
25151
25152 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
25153
25154         * misc.c (gnat_handle_option): Fix warnings.
25155
25156 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
25157
25158         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
25159
25160 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
25161
25162         * Make-lang.in: Update to handle command-line options.
25163         * lang.opt: New file.
25164         * misc.c: Include aoptions.h.
25165         (cl_options_count, cl_options): Remove.
25166         (gnat_handle_option): New.
25167         (gnat_decode_option): Remove.
25168         (LANG_HOOKS_DECODE_OPTION): Remove.
25169         (LANG_HOOKS_HANDLE_OPTION): Override.
25170
25171 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
25172
25173         * init.c, misc.c, trans.c, utils.c: Remove dead code.
25174
25175 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
25176
25177         * Makefile.in: Replace "host_canonical" with "host" for autoconf
25178         substitution.
25179
25180 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
25181
25182         * Make-lang.in: Update.
25183         * misc.c: Include opts.h. Define cl_options_count and cl_options.
25184
25185 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
25186
25187         * misc.c (gnat_init_options): Update.
25188
25189 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
25190
25191         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
25192         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
25193         __attribute__ ((__unused__)).
25194
25195 2003-06-05  Jan Hubicka  <jh@suse.cz>
25196
25197         * Make-lang.in:  Add support for stageprofile and stagefeedback
25198
25199 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
25200
25201         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
25202         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
25203
25204 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
25205
25206         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
25207         Remove non-VMS directive.
25208         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
25209         alternatives.
25210         (Examples of gnatls Usage): Remove VMS alternative.
25211
25212 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
25213
25214         PR ada/9953
25215         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
25216         and turn ZCX_By_Default back to False since the underlying support
25217         is not quite there yet.
25218
25219 2003-06-01  Andreas Jaeger  <aj@suse.de>
25220
25221         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
25222         and ROUND_TYPE_SIZE_UNIT.
25223
25224 2003-05-22   Geert Bosch <bosch@gnat.com>
25225
25226         * gnat_rm.texi : Remove reference to Ada Core Technologies.
25227
25228 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
25229
25230         * trans.c (tree_transform): Use location_t and input_location
25231         directly.
25232         (build_unit_elab): Likewise.
25233         * utils.c (create_label_decl): Likewise.
25234
25235 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
25236
25237         * trans.c (tree_transform, build_unit_elab,
25238         set_lineno): Rename lineno to input_line.
25239         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
25240         end_subprog_body): Likewise.
25241         * utils2.c (build_call_raise): Likewise.
25242
25243 2003-05-01  Laurent Guerby <guerby@acm.org>
25244
25245         PR ada/10546
25246         * 5iosinte.ads: Increase pthread_cond_t size to match recent
25247         LinuxThread and NPTL version, merge from ACT.
25248
25249 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
25250
25251         * utils.c (convert): No need to clear TREE_CST_RTL.
25252
25253 2003-04-23   Geert Bosch <bosch@gnat.com>
25254
25255         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
25256         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
25257         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
25258         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
25259         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
25260         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
25261         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
25262         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
25263         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
25264         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
25265         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
25266         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
25267         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
25268         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
25269         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
25270         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
25271         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
25272         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
25273         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
25274         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
25275         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
25276         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
25277         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
25278         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
25279         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
25280         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
25281         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
25282         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
25283         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
25284         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
25285         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
25286         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
25287         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
25288         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
25289         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
25290         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
25291         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
25292         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
25293         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
25294         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
25295         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
25296         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
25297         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
25298         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
25299         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
25300         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
25301         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
25302         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
25303         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
25304         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
25305         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
25306         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
25307         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
25308         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
25309         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
25310         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
25311         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
25312         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
25313         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
25314         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
25315         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
25316         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
25317         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
25318         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
25319         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
25320         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
25321         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
25322         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
25323         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
25324         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
25325         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
25326         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
25327         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
25328         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
25329         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
25330         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
25331         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
25332         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
25333         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
25334         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
25335         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
25336         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
25337         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
25338         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
25339         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
25340         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
25341         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
25342         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
25343         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
25344         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
25345         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
25346         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
25347         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
25348         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
25349         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
25350         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
25351         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
25352         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
25353         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
25354         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
25355         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
25356         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
25357         ali.adb, ali.ads, alloc.ads, argv.c,
25358         atree.adb, atree.ads, atree.h, aux-io.c,
25359         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
25360         binde.adb, binde.ads, binderr.adb, binderr.ads,
25361         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
25362         butil.adb, butil.ads, cal.c, calendar.ads,
25363         casing.adb, casing.ads, ceinfo.adb, checks.adb,
25364         checks.ads, cio.c, comperr.adb, comperr.ads,
25365         config-lang.in, csets.adb, csets.ads, csinfo.adb,
25366         cstand.adb, cstand.ads, cuintp.c, debug.adb,
25367         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
25368         dec-io.ads, dec.ads, deftarg.c, directio.ads,
25369         einfo.adb, einfo.ads, elists.adb, elists.ads,
25370         elists.h, errno.c, errout.adb, errout.ads,
25371         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
25372         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
25373         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
25374         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
25375         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
25376         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
25377         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
25378         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
25379         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
25380         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
25381         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
25382         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
25383         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
25384         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
25385         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
25386         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
25387         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
25388         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
25389         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
25390         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
25391         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
25392         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
25393         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
25394         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
25395         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
25396         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
25397         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
25398         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
25399         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
25400         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
25401         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
25402         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
25403         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
25404         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
25405         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
25406         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
25407         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
25408         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
25409         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
25410         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
25411         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
25412         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
25413         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
25414         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
25415         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
25416         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
25417         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
25418         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
25419         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
25420         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
25421         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
25422         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
25423         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
25424         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
25425         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
25426         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
25427         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
25428         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
25429         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
25430         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
25431         lib.adb, lib.ads, live.adb, live.ads,
25432         machcode.ads, make.adb, make.ads, makeusg.adb,
25433         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
25434         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
25435         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
25436         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
25437         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
25438         mlib.ads, namet.adb, namet.ads, nlists.adb,
25439         nlists.ads, opt.adb, opt.ads, osint-b.adb,
25440         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
25441         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
25442         osint.ads, output.adb, output.ads, par-ch10.adb,
25443         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
25444         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
25445         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
25446         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
25447         par-tchk.adb, par-util.adb, par.adb, par.ads,
25448         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
25449         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
25450         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
25451         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
25452         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
25453         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
25454         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
25455         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
25456         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
25457         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
25458         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
25459         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
25460         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
25461         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
25462         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
25463         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
25464         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
25465         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
25466         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
25467         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
25468         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
25469         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
25470         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
25471         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
25472         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
25473         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
25474         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
25475         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
25476         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
25477         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
25478         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
25479         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
25480         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
25481         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
25482         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
25483         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
25484         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
25485         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
25486         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
25487         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
25488         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
25489         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
25490         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
25491         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
25492         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
25493         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
25494         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
25495         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
25496         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
25497         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
25498         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
25499         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
25500         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
25501         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
25502         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
25503         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
25504         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
25505         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
25506         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
25507         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
25508         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
25509         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
25510         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
25511         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
25512         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
25513         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
25514         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
25515         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
25516         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
25517         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
25518         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
25519         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
25520         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
25521         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
25522         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
25523         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
25524         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
25525         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
25526         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
25527         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
25528         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
25529         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
25530         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
25531         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
25532         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
25533         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
25534         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
25535         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
25536         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
25537         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
25538         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
25539         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
25540         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
25541         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
25542         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
25543         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
25544         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
25545         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
25546         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
25547         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
25548         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
25549         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
25550         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
25551         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
25552         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
25553         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
25554         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
25555         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
25556         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
25557         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
25558         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
25559         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
25560         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
25561         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
25562         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
25563         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
25564         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
25565         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
25566         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
25567         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
25568         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
25569         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
25570         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
25571         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
25572         snames.ads, sprint.adb, sprint.ads, stand.adb,
25573         stand.ads, stringt.adb, stringt.ads, style.adb,
25574         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
25575         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
25576         switch-m.ads, switch.adb, switch.ads, system.ads,
25577         table.adb, table.ads, targparm.adb, targparm.ads,
25578         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
25579         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
25580         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
25581         ttypef.ads, ttypes.ads, types.adb, types.ads,
25582         uintp.adb, uintp.ads, uname.adb, uname.ads,
25583         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
25584         usage.adb, usage.ads, validsw.adb, validsw.ads,
25585         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
25586         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
25587         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
25588         formatting and other trivial changes from ACT.
25589
25590 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
25591
25592         * gigi.h, utils2.c (build_constructor):
25593         Rename gnat_build_constructor. Use build_constructor.
25594         * decl.c (gnat_to_gnu_entity)
25595         * trans.c (tree_transform, pos_to_constructor, extract_values)
25596         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
25597         (unchecked_convert)
25598         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
25599         (fill_vms_descriptor):
25600         Update to match.
25601
25602 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
25603
25604         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
25605         * misc.c (gnat_tree_size): New function.
25606         (LANG_HOOKS_TREE_SIZE): Override.
25607
25608 2003-04-03  Jason Merrill  <jason@redhat.com>
25609
25610         * misc.c (gnat_adjust_rli): #if 0.
25611
25612 2003-03-31   Geert Bosch <bosch@gnat.com>
25613
25614         PR ada/10020
25615         * link.c : Fix misspelled "const" keyword
25616
25617 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
25618
25619         PR c++/7086
25620         * utils2.c: Adjust calls to put_var_into_stack.
25621
25622 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
25623
25624         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
25625
25626 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
25627
25628         * misc.c (gnat_init): Update for new prototype.
25629
25630 2003-03-05  Olivier Hainque  <hainque@gnat.com>
25631
25632         ada/9961
25633         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
25634         warning, and fix return type for the IN_RTS && !SJLJ case.
25635
25636 2003-03-04  Tom Tromey  <tromey@redhat.com>
25637
25638         * Make-lang.in (ada.tags): New target.
25639
25640 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
25641
25642         ada/9911
25643         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
25644         wrapper, which name remains constant whatever underlying GCC
25645         scheme.
25646
25647         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
25648         the stable interface needed for a-except.
25649
25650 2003-03-02  Andreas Jaeger  <aj@suse.de>
25651
25652         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
25653         gnat_ug_wnt.texi: Regenerate.
25654
25655 2003-03-02  Laurent Guerby <guerby@acm.org>
25656
25657         * Makefile.in (install-gnatlib): Match previous change there
25658         so it works.
25659
25660 2003-02-28  Andreas Schwab  <schwab@suse.de>
25661
25662         * Make-lang.in (install-gnatlib): Change to ada directory before
25663         running make instead of using ada/Makefile directly.
25664
25665 2003-02-18  Ben Elliston  <bje@redhat.com>
25666
25667         Part of PR ada/9406
25668         * gnat_ug.texi (Binder output file): Grammar fix.
25669
25670 2003-02-18  Ben Elliston  <bje@redhat.com>
25671
25672         PR other/7350
25673         * 5qtaprop.adb (Sleep): Fix typo in comment.
25674
25675 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
25676
25677         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
25678         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
25679         gnat_ug_wnt.texi: Regenerate.
25680
25681 2003-02-03  Christian Cornelssen <ccorn@cs.tu-berlin.de>
25682
25683         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
25684         be created if necessary.
25685         (ada.install-common): Let $(DESTDIR)$(bindir) be created
25686         if necessary.  Remove erroneous and redundant gnatchop
25687         installation commands.  Test for gnatdll before attempting
25688         to install it.
25689         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
25690         and gnatdll from all plausible locations.
25691
25692 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
25693
25694         * utils2.c (build_unary_op): Don't check flag_volatile.
25695         * gnat_ug.texi: Remove -fvolatile from example.
25696         * gnat_ug_vxw.texi: Likewise.
25697
25698 2003-01-29  Laurent Guerby <guerby@acm.org>
25699
25700         PR ada/8344
25701         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
25702         * Makefile.in: match previous change.
25703         * Make-lang.in: match previous change.
25704
25705 2003-01-29      Joel Sherrill <joel@OARcorp.com>
25706
25707         * 5rosinte.ads: Add SIGXCPU.
25708         * 5rtpopsp.adb: New file.
25709         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
25710         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
25711         specific file 5rtpopsp.adb.
25712         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
25713         is likely needed for all newlib targets.
25714         * init.c: Add RTEMS specific version of __gnat_initialize().
25715
25716 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
25717
25718         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
25719
25720 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
25721
25722         * init.c (__gnat_error_handler): Make msg const.
25723
25724         * gmem.c (convert_addresses): Move declaration ...
25725         * adaint.h: ... here.
25726         * adaint.c (convert_addresses): Adapt addrs type to match
25727         prototype.
25728
25729         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
25730
25731 2003-01-24  Andreas Schwab  <schwab@suse.de>
25732
25733         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
25734         size_t to avoid warning.
25735
25736 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
25737
25738         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
25739
25740 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
25741
25742         * gnat_rm.texi: Remove RCS version number.
25743
25744         * ada-tree.h (union lang_tree_node): Add chain_next option.
25745
25746 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
25747
25748         * Make-lang.in (ada.install-info, ada.install-common,
25749         ada.uninstall): Prepend $(DESTDIR) to the destination
25750         directory in all (un)installation commands.
25751         * Makefile.in (install-gnatlib, install-rts): Ditto.
25752
25753 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
25754
25755         * gnat_rm.texi, gnat_ug.texi: Use @copying.
25756         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
25757         gnat_ug_wnt.texi: Regenerate.
25758
25759 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
25760
25761         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
25762         only.
25763         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
25764         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
25765         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
25766         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
25767         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
25768         $(srcdir)/doc/include/gcc-common.texi.
25769
25770 2002-12-15   Geert Bosch <bosch@gnat.com>
25771
25772         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
25773
25774 2002-12-14   Geert Bosch <bosch@gnat.com>
25775
25776         PR ada/5690
25777         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
25778         case of a body created for a Renaming_As_Body, on which
25779         conformance checks are not performed.
25780
25781 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
25782
25783         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
25784         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
25785         not already included.
25786         * Make-lang.in: Update dependencies.
25787
25788 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
25789         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
25790         solution to buffer overflow bug on GNU/Linux.
25791
25792 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
25793
25794         PR ada/5856
25795         PR ada/6919
25796         * bindgen.adb: Remove all references to Public_Version.
25797         * comperr.adb: Remove all references to Public_Version and
25798         GNATPRO_Version; correct bug reporting instructions.
25799         * comperr.ads: Change to match bug box.
25800         * gnatvsn.ads: Remove all references to Public version and
25801         GNATPRO version.
25802
25803 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
25804
25805         PR ada/6919
25806         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
25807         GNU/Linux.
25808
25809         PR ada/6558
25810         * config-lang.in: Remove diff_excludes.
25811
25812 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
25813
25814         PR ada/8358
25815         * trans.c (gnu_pending_elaboration_lists): New GC root.
25816         (build_unit_elab): Use..
25817
25818 2002-10-30   Geert Bosch <bosch@gnat.com>
25819
25820         PR ada/6558
25821         * misc.c : Include optabs.h
25822
25823         * Make-lang.in (misc.o): Add dependency on optabs.h
25824
25825 2002-10-29   Geert Bosch <bosch@gnat.com>
25826
25827         PR ada/6558
25828         * Make-lang.in (gnatbind): Depend on CONFIG_H
25829
25830 2002-10-29  Geert bosch  <bosch@gnat.com>
25831
25832         PR ada/6558
25833         * misc.c: Unrevert misc.c (1.13)
25834
25835 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
25836
25837         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
25838         maintainership comments.
25839
25840 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
25841
25842         PR ada/5904
25843         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
25844         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
25845         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
25846         7staprop.adb: Correct statements in comments about
25847         maintainership of GNAT.
25848
25849         PR ada/5904
25850         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
25851         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
25852         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
25853         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
25854         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
25855         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
25856         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
25857         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
25858         comments about maintainership of GNAT.
25859
25860         PR ada/6919 (forward port of patch for PR ada/5904)
25861         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
25862         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
25863         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
25864         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
25865         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
25866         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
25867         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
25868         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
25869         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
25870         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
25871         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
25872         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
25873         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
25874         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
25875         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
25876         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
25877         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
25878         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
25879         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
25880         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
25881         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
25882         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
25883         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
25884         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
25885         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
25886         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
25887         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
25888         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
25889         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
25890         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
25891         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
25892         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
25893         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
25894         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
25895         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
25896         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
25897         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
25898         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
25899         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
25900         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
25901         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
25902         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
25903         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
25904         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
25905         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
25906         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
25907         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
25908         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
25909         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
25910         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
25911         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
25912         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
25913         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
25914         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
25915         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
25916         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
25917         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
25918         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
25919         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
25920         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
25921         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
25922         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
25923         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
25924         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
25925         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
25926         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
25927         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
25928         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
25929         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
25930         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
25931         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
25932         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
25933         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
25934         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
25935         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
25936         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
25937         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
25938         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
25939         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
25940         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
25941         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
25942         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
25943         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
25944         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
25945         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
25946         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
25947         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
25948         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
25949         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
25950         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
25951         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
25952         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
25953         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
25954         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
25955         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
25956         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
25957         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
25958         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
25959         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
25960         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
25961         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
25962         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
25963         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
25964         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
25965         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
25966         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
25967         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
25968         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
25969         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
25970         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
25971         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
25972         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
25973         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
25974         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
25975         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
25976         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
25977         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
25978         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
25979         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
25980         par-endh.adb par-labl.adb par-load.adb par-prag.adb
25981         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
25982         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
25983         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
25984         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
25985         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
25986         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
25987         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
25988         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
25989         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
25990         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
25991         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
25992         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
25993         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
25994         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
25995         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
25996         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
25997         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
25998         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
25999         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
26000         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
26001         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
26002         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
26003         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
26004         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
26005         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
26006         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
26007         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
26008         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
26009         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
26010         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
26011         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
26012         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
26013         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
26014         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
26015         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
26016         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
26017         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
26018         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
26019         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
26020         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
26021         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
26022         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
26023         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
26024         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
26025         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
26026         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
26027         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
26028         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
26029         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
26030         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
26031         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
26032         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
26033         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
26034         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
26035         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
26036         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
26037         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
26038         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
26039         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
26040         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
26041         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
26042         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
26043         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
26044         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
26045         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
26046         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
26047         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
26048         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
26049         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
26050         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
26051         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
26052         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
26053         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
26054         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
26055         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
26056         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
26057         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
26058         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
26059         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
26060         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
26061         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
26062         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
26063         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
26064         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
26065         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
26066         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
26067         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
26068         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
26069         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
26070         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
26071         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
26072         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
26073         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
26074         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
26075         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
26076         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
26077         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
26078         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
26079         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
26080         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
26081         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
26082         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
26083         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
26084         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
26085         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
26086         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
26087         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
26088         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
26089         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
26090         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
26091         stringt.ads stringt.h style.adb style.ads stylesw.adb
26092         stylesw.ads switch.adb switch.ads sysdep.c system.ads
26093         table.adb table.ads targparm.adb targparm.ads targtyps.c
26094         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
26095         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
26096         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
26097         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
26098         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
26099         usage.ads utils.c utils2.c validsw.adb validsw.ads
26100         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
26101         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
26102         xtreeprs.adb: Correct statements in comments about maintainership
26103         of GNAT.
26104
26105 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
26106
26107         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
26108         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
26109         * gnatvsn.ads: Gnat_Version_String is now a function.
26110         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
26111         copy the C version_string into a String and return it.
26112         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
26113         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
26114         Remove pragma Ident (Gnat_Version_String).  If this was the
26115         sole use of package Gnatvsn, remove the with statement too.
26116         * gnat1drv.adb: Tweak -gnatv output.
26117
26118 2002-09-17  Richard Henderson  <rth@redhat.com>
26119
26120         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
26121         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
26122         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
26123         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
26124         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
26125         and real_2expN instead of a loop.
26126         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
26127         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
26128
26129 2002-08-25  Andre Leis <a.leis@gmx.net>
26130             David Billinghurst (David.Billinghurst@riotinto.com>
26131
26132         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
26133
26134 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
26135
26136         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
26137         Remove $(CONFIG_H) dependency.
26138
26139 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
26140
26141         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
26142
26143 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26144
26145         * adadecode.c (ada_demangle): Use xstrdup in lieu of
26146         xmalloc/strcpy.
26147         * misc.c (gnat_decode_option): Likewise.
26148
26149 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
26150
26151         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
26152         function approach did not work well because of a side effect (the
26153         function call could reallocate the table which was being indexed
26154         using its result). Fixes ada/4851. [RESURRECTED]
26155
26156 2002-07-01  Roger Sayle  <roger@eyesopen.com>
26157
26158         * ada/utils.c (builtin_function): Accept an additional parameter.
26159
26160 2002-06-28  Andreas Jaeger  <aj@suse.de>
26161
26162         PR ada/7144
26163         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
26164         <adi@thur.de>.
26165
26166 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26167
26168         * Makefile.in (SHELL): Set to @SHELL@.
26169
26170 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26171
26172         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
26173         array size calculation.
26174
26175 2002-06-04  Andreas Jaeger  <aj@suse.de>
26176
26177         * Make-lang.in (gnatbind): Readd rule that has been lost in last
26178         patch.
26179
26180 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
26181
26182         Merge from pch-branch:
26183
26184         * config-lang.in (gtfiles): Add ada-tree.h.
26185         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
26186         (SET_TYPE_MODULUS): New.
26187         (SET_TYPE_INDEX): New.
26188         (SET_TYPE_DIGITS_VALUE): New.
26189         (SET_TYPE_RM_SIZE): New.
26190         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
26191         (SET_TYPE_ADA_SIZE): New.
26192         (SET_TYPE_ACTUAL_BOUNDS): New.
26193         (SET_DECL_CONST_CORRESPONDING_VAR): New.
26194         (SET_DECL_ORIGINAL_FIELD): New.
26195         (TREE_LOOP_ID): Correct typo.
26196         * decl.c: Use new macros.
26197         * utils.c: Include debug.h, use new macros.
26198         * utils2.c: Use new macros.
26199
26200         * ada-tree.h: Update all macros for new tree description.
26201         (struct tree_loop_id): New.
26202         (union lang_tree_node): New.
26203         (struct lang_decl): New.
26204         (struct lang_type): New.
26205         * misc.c (gnat_mark_tree): Delete.
26206         (LANG_HOOKS_MARK_TREE): Delete.
26207         * trans.c (tree_transform): No longer any need to cast
26208         for TREE_LOOP_ID.
26209
26210         * utils.c (struct language_function): New dummy structure.
26211
26212         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
26213         (misc.o): Likewise.
26214         (utils.o): Likewise; also gtype-ada.h.
26215         * Make-lang.in (gnat1): Add dependency on s-gtype.
26216         (gnatbind): Add dependency on $(CONFIG_H).
26217         * utils.c: Correct last #include.
26218         (stuct e_stack): Remove unnecessary 'static'.
26219         (mark_e_stack): Remove unused prototype.
26220
26221         * scn-nlit.adb: Remove whitespace after version number to
26222         keep lines under 80 chars.
26223         * snames.adb: Likewise.
26224         * treepr.ads: Likewise.
26225
26226         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
26227         (misc.o): Likewise.
26228         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
26229         * config-lang.in (gtfiles): New.
26230         * decl.c: Use gengtype for roots.
26231         * gigi.h: Use gengtype for roots.
26232         * trans.c: Use gengtype for roots.
26233         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
26234
26235 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
26236
26237         * misc.c (gnat_init): Adjust setting of internal_error_function.
26238
26239 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
26240
26241         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
26242         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
26243         gnat_ug_wnt.texi: Regenerate.
26244
26245 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
26246
26247         * 5ntaprop.adb (with System.OS_Primitives): Remove.
26248
26249         * cstreams.c (max_path_len): Move from here ...
26250         * adaint.c (__gnat_max_path_len): ... to here.
26251         * adaint.c (__gnat_max_path_len): Declare.
26252         * g-dirope.adb (Max_Path): Adjust.
26253         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
26254         * i-cstrea.ads (max_path_len): Adjust.
26255         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
26256         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
26257
26258         * Makefile.in, Make-lang.in: Documentation is now built in
26259         Make-lang.in.  Store Info and generated Texinfo files in the
26260         source directory.
26261         * gnat_ug.texi: Remove CVS keywords, correct version number.
26262         Set file name correctly.
26263
26264         * gnat_ug_*.texi: Add.
26265         * .cvsignore: Ignore generated Texinfo files.
26266
26267 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
26268
26269         * ada.h: Add MI guard macro.
26270         (SUBTYPE): Define constants with an anonymous enum, not static
26271         const variables.
26272         (IN): Cast constants to appropriate type before use.
26273
26274 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
26275
26276         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
26277         (experimental)".
26278
26279 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
26280
26281         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
26282         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
26283         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
26284         (ALL_ADA_CFLAGS): Likewise.
26285         (ADA_INCLUDES): Likewise.
26286         Adapt for new working dir.
26287         (GNATBIND): Use Makefile.in version.
26288         (.SUFFIXES): Copy from Makefile.in.
26289         (ada-warn): Define.
26290         (.adb.o, .ads.o): Copy from Makefile.in.
26291         Added $(OUTPUT_OPTION).
26292         (GNAT1_C_OBJS): Moved from Makefile.in.
26293         Prefix with ada subdir.
26294         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
26295         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
26296         Adapt for new working dir.
26297         (EXTRA_GNATBIND_OBJS): Likewise.
26298         (ADA_BACKEND): Moved from Makefile.in.
26299         Renamed to avoid conflict with global BACKEND.
26300         Use that one.
26301         (TARGET_ADA_SRCS): Moved from Makefile.in.
26302         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
26303         Use ADA_BACKEND.
26304         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
26305         (ada_extra_files): Moved from Makefile.in.
26306         Prefix with ada subdir.
26307         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
26308         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
26309         (ada/nmake.ads): Likewise.
26310         (update-sources): Moved from Makefile.in.
26311         Prefix with ada subdir.
26312         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
26313         (ADA_TREE_H): Likewise.
26314         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
26315         (ada/memtrack.o): Likewise.
26316         (ada/adadecode.o): Likewise.
26317         Update dependencies.
26318         (ada/adaint.o): New.
26319         (ada/argv.o): Moved from Makefile.in.
26320         Prefix with ada subdir.
26321         Update dependencies.
26322         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
26323         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
26324         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
26325         Prefix with ada subdir.
26326         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
26327         (GNAT DEPENDENCIES): Regenerate.
26328         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
26329         toplevel Makefile.in.
26330         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
26331         (TARGET_ADA_SRCS): Removed.
26332         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
26333         (GNATBIND_OBJS): Likewise.
26334         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
26335         (BACKEND): Removed.
26336         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
26337         (TREE_H): Likewise.
26338         (ada_extra_files): Likewise.
26339         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
26340         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
26341         (update-sources): Likewise.
26342         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
26343         (ADA_TREE_H): Likewise.
26344         (adadecoce.o): Likewise.
26345         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
26346         (GNAT DEPENDENCIES): Likewise.
26347
26348 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
26349
26350         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
26351         * Makefile.in: Likewise.
26352
26353 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
26354
26355         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
26356         Restore $(CONFIG_H) and prefix.o dependencies.
26357         (ada.stage[1-4]): Depend on stage?-start.
26358
26359         * Makefile.in (b_gnatb.c): Depend on interfac.o.
26360
26361 2002-05-02  Jim Wilson  <wilson@redhat.com>
26362
26363         * utils.c (finish_record_type): Change record_size to record_type.
26364
26365 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
26366
26367         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
26368         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
26369         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
26370
26371 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
26372
26373         * misc.c (gnat_parse_file): Update.
26374
26375 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
26376
26377         * misc.c (gnat_init): Don't set lang_attribute_common.
26378
26379 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
26380
26381         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
26382
26383 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
26384
26385         * gnat_ug.texi: New file.
26386
26387         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
26388         instead of gfdl.texi
26389
26390         * xgnatug.adb, ug_words: New files.
26391
26392         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
26393         gnat_rm and gnat-style manuals.
26394
26395 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
26396
26397         * gigi.h (incomplete_type_error): Remove.
26398         * utils.c (incomplete_type_error): Remove.
26399
26400 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
26401
26402         * trans.c (tree_transform): Add has_scope argument to
26403         expand_start_stmt_expr.
26404
26405 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
26406
26407         * gigi.h (truthvalue_conversion): Rename.
26408         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
26409         * trans.c (tree_transform): Update.
26410         * utils2.c (truthvalue_conversion): Rename, update.
26411         (build_binary_op, build_unary_op): Update.
26412
26413 2002-04-04  Laurent Guerby  <guerby@acm.org>
26414
26415         * make.adb: Implement -margs, remove restriction about file name placement.
26416         * makeusg.adb: Documentation update.
26417         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
26418         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
26419
26420 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
26421
26422         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
26423         (builtin_function): Similarly.
26424
26425 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
26426
26427         * decl.c (gnat_to_gnu_entity): Update.
26428         * gigi.h (mark_addressable): Rename.
26429         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
26430         * trans.c (tree_transform): Update.
26431         * utils.c (create_var_decl): Update.
26432         * util2.c (build_binary_op, build_unary_op,
26433         fill_vms_descriptor): Update.
26434         (mark_addressable): Rename, update.
26435
26436 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
26437
26438         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
26439         Rename.
26440         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
26441         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
26442         * trans.c (tree_transform, convert_with_check): Update.
26443         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
26444         Rename.
26445
26446 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
26447
26448         * gigi.h (finish_incomplete_decl): Rename.
26449         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
26450         * utils.c (gnat_init_decl_processing): Don't set hook.
26451         (finish_incomplete_decl): Rename.
26452
26453 2002-03-29  Andreas Schwab  <schwab@suse.de>
26454
26455         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
26456         directory.
26457
26458 2001-03-28  Robert Dewar <dewar@gnat.com>
26459
26460         * checks.ads:
26461         (Remove_Checks): New procedure
26462
26463         * checks.adb:
26464         (Remove_Checks): New procedure
26465
26466         * exp_util.adb:
26467         Use new Duplicate_Subexpr functions
26468         (Duplicate_Subexpr_No_Checks): New procedure
26469         (Duplicate_Subexpr_No_Checks_Orig): New procedure
26470         (Duplicate_Subexpr): Restore original form (checks duplicated)
26471         (Duplicate_Subexpr): Call Remove_Checks
26472
26473         * exp_util.ads:
26474         (Duplicate_Subexpr_No_Checks): New procedure
26475         (Duplicate_Subexpr_No_Checks_Orig): New procedure
26476         Add 2002 to copyright notice
26477
26478         * sem_util.adb: Use new Duplicate_Subexpr functions
26479
26480         * sem_eval.adb:
26481         (Eval_Indexed_Component): This is the place to call
26482         Constant_Array_Ref and to replace the value. We simply merge
26483         the code of this function in here, since it is now no longer
26484         used elsewhere. This fixes the problem of the back end not
26485         realizing we were clever enough to see that this was
26486         constant.
26487         (Expr_Val): Remove call to Constant_Array_Ref
26488         (Expr_Rep_Val): Remove call to Constant_Array_Ref
26489         Minor reformatting
26490         (Constant_Array_Ref): Deal with string literals (patch
26491         suggested by Zack Weinberg on the gcc list)
26492
26493 2001-03-28  Ed Schonberg <schonber@gnat.com>
26494
26495         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
26496         Duplicate_Subexpr_Move_Checks.
26497
26498         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
26499         Duplicate_Subexpr_Move_Checks.
26500
26501         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
26502         value of array exists before retrieving it (it may a private
26503         protected component in a function).
26504
26505 2002-03-28   Geert Bosch <bosch@gnat.com>
26506
26507         * prj-pp.adb : New file.
26508
26509         * prj-pp.ads : New file.
26510
26511 2002-03-28  Andreas Jaeger  <aj@suse.de>
26512
26513         * Makefile.in (stamp-sdefault): Fix path for Makefile.
26514
26515 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
26516
26517         * misc.c (gnat_expand_expr): Move prototype.
26518
26519 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
26520
26521         * misc.c (insert_default_attributes): Remove.
26522
26523 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
26524
26525         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
26526         (gnat_init): Don't set hook.
26527         (gnat_expand_expr): Fix prototype.
26528
26529 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
26530
26531         * misc.c (ggc_p): Remove.
26532
26533 2002-03-27  Geert Bosch  <bosch@gnat.com>
26534
26535         * prj-makr.ads, prj-makr.adb : New files.
26536
26537 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
26538
26539         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
26540         (lang_mark_tree): Make static, rename.
26541
26542 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
26543
26544         * misc.c (maybe_build_cleanup): Remove.
26545
26546 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
26547
26548         * gigi.h (yyparse): Remove.
26549
26550 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
26551
26552         * gnat_rm.texi: Sync with ACT version.
26553           (From Ben Brosgol <brosgol@gnat.com>)
26554
26555 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
26556
26557         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
26558         (gnat_init): Remove old hook.
26559
26560 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
26561
26562         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
26563         (yyparse): Rename gnat_parse_file.
26564
26565 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
26566
26567         Delete all lines containing "$Revision:".
26568         * xeinfo.adb: Don't look for revision numbers.
26569         * xnmake.adb: Likewise.
26570         * xsinfo.adb: Likewise.
26571         * xsnames.adb: Likewise.
26572         * xtreeprs.adb: Likewise.
26573
26574 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26575
26576         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
26577         gnat_tree_code_name): Delete.
26578         (tree_code_type, tree_code_length, tree_code_name): Define.
26579         (gnat_init): Don't try to copy into the various tree_code
26580         arrays.
26581
26582 2002-03-11  Richard Henderson  <rth@redhat.com>
26583
26584         * Makefile.in (.NOTPARALLEL): Add fake tag.
26585
26586 2002-03-07  Geert Bosch  <bosch@gnat.com>
26587
26588         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
26589         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
26590         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
26591         switch-m.adb, switch-m.ads : New files.
26592
26593 2002-03-07  Geert Bosch  <bosch@gnat.com>
26594
26595         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
26596         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
26597         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
26598         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
26599         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
26600         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
26601         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
26602         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
26603         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
26604         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
26605         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
26606         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
26607         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
26608         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
26609         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
26610         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
26611         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
26612         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
26613         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
26614         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
26615         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
26616         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
26617         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
26618         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
26619         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
26620         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
26621         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
26622         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
26623         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
26624         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
26625         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
26626         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
26627         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
26628         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
26629         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
26630         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
26631         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
26632         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
26633         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
26634         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
26635         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
26636         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
26637         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
26638         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
26639         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
26640         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
26641         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
26642         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
26643         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
26644         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
26645         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
26646         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
26647         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
26648         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
26649         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
26650         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
26651         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
26652         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
26653         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
26654         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
26655         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
26656         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
26657         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
26658         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
26659         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
26660         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
26661         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
26662         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
26663         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
26664         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
26665         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
26666         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
26667         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
26668         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
26669         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
26670         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
26671         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
26672         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
26673         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
26674         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
26675         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
26676         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
26677         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
26678         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
26679         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
26680         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
26681         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
26682         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
26683         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
26684         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
26685         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
26686         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
26687         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
26688         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
26689         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
26690         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
26691         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
26692
26693         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
26694         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
26695         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
26696         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
26697
26698         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
26699         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
26700
26701         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
26702         to mdll-fil.ad[bs] and mdll-util.ad[bs]
26703
26704         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
26705         from mdllfile.ad[bs] and mdlltool.ad[bs]
26706
26707 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26708
26709         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
26710         lieu of explicit sizeof/sizeof.
26711
26712 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
26713
26714         * misc.c (copy_lang_decl): Remove.
26715
26716 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
26717
26718         * misc.c: Delete traditional-mode-related code copied from the
26719         C front end but not used, or used only to permit the compiler
26720         to link.
26721
26722 2002-02-07  Richard Henderson  <rth@redhat.com>
26723
26724         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
26725         * adaint.h (__gnat_to_gm_time): Update prototype.
26726
26727 2002-01-30  Richard Henderson  <rth@redhat.com>
26728
26729         * trans.c (tree_transform) [N_Loop_Statement]: Use
26730         expand_exit_loop_top_cond.
26731
26732 2001-12-23  Richard Henderson  <rth@redhat.com>
26733
26734         * utils.c (end_subprog_body): Push GC context around
26735         rest_of_compilation for nested functions.
26736
26737 2001-12-23  Richard Henderson  <rth@redhat.com>
26738
26739         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
26740
26741 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
26742
26743         * gnat-style.texi (Declarations and Types): Remove ancient style
26744         rule which was mandated by code generation issues.
26745
26746         * gnat-style.texi (header): Add @dircategory, @direntry.
26747         (title page): Remove date.
26748         (general) Add @./@: where approriate, and two spaces after the
26749         full stop at the end of a sentence.  Use @samp markup when
26750         referring concrete lexical entities (keywords, attribute names
26751         etc.), and @syntax for ARM grammar elements. Use @r for English
26752         text in comments.  Use @emph for emphasis.  Change "if-statements"
26753         etc. to "if statements" (without @samp). Break long lines.  Make
26754         casing of section names consistent.
26755         (Identifiers): Use @samp markup for variable names.
26756         (Comments): Use @samp markup for comment characters. Line-end
26757         comments may follow any Ada code, not just statements.  Fix
26758         misspelling of "Integer" as "integer".
26759         (Loop statements): Do not use variable name "I", use "J".
26760         (Subprogram Declarations): Document alignment.
26761         (Subprogram Bodies, Block statements): Document empty line before
26762         "begin".
26763
26764 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
26765
26766         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
26767         function approach did not work well because of a side effect (the
26768         function call could reallocate the table which was being indexed
26769         using its result). Fixes ada/4851.
26770
26771 2001-12-19  Robert Dewar <dewar@gnat.com>
26772
26773         * bindgen.adb: Minor reformatting
26774
26775         * cstand.adb: Minor reformatting
26776
26777         * fmap.adb: Minor reformatting
26778         Change name from Add for Add_To_File_Map (Add is much too generic)
26779         Change Path_Name_Of to Mapped_Path_Name
26780         Change File_Name_Of to Mapped_File_Name
26781         Fix copyright dates in header
26782
26783         * fmap.ads:
26784         Change name from Add for Add_To_File_Map (Add is much too generic)
26785         Change Path_Name_Of to Mapped_Path_Name
26786         Change File_Name_Of to Mapped_File_Name
26787         Fix copyright dates in header
26788
26789         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
26790         Add use clause for Fmap.
26791
26792         * make.adb: Minor reformatting
26793
26794         * osint.adb: Minor reformatting.  Change of names in Fmap.
26795         Add use clause for Fmap.
26796
26797         * prj-env.adb: Minor reformatting
26798
26799         * prj-env.ads: Minor reformatting
26800
26801         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
26802         error found (there were odd exceptions to this general rule in
26803         -gnatec/-gnatem processing)
26804
26805 2001-12-19  Olivier Hainque <hainque@gnat.com>
26806
26807         * raise.c (__gnat_eh_personality): Exception handling personality
26808         routine for Ada.  Still in rough state, inspired from the C++ version
26809         and still containing a bunch of debugging artifacts.
26810         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
26811         inspired from the C++ library.
26812
26813         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
26814         exception handling integration.
26815
26816 2001-12-19  Arnaud Charlet <charlet@gnat.com>
26817
26818         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
26819         (HIE_SOURCES): Add s-secsta.ad{s,b}.
26820         (HIE_OBJS): Add s-fat*.o
26821         (RAVEN_SOURCES): Remove files that are no longer required. Add
26822         interrupt handling files.
26823         (RAVEN_MOD): Removed, no longer needed.
26824
26825 2001-12-19  Robert Dewar <dewar@gnat.com>
26826
26827         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
26828         Add 2001 to copyright date
26829
26830         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
26831         need to force universal inlining for these cases.
26832
26833 2001-12-19  Arnaud Charlet <charlet@gnat.com>
26834
26835         * s-taprob.adb: Minor clean ups so that this unit can be used in
26836         Ravenscar HI.
26837
26838         * exp_ch7.adb: Allow use of secondary stack in HI mode.
26839         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
26840
26841 2001-12-19  Vincent Celier <celier@gnat.com>
26842
26843         * prj-tree.ads (Project_Node_Record): Add comments for components
26844         Pkg_Id and Case_Insensitive.
26845
26846 2001-12-19  Pascal Obry <obry@gnat.com>
26847
26848         * g-socket.adb: Minor reformatting. Found while reading code.
26849
26850 2001-12-19  Robert Dewar <dewar@gnat.com>
26851
26852         * prj-tree.ads: Minor reformatting
26853
26854 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
26855
26856         * config-lang.in (diff_excludes): Remove.
26857
26858 2001-12-17  Ed Schonberg <schonber@gnat.com>
26859
26860         * sem_res.adb (Resolve_Selected_Component): do not generate a
26861         discriminant check if the selected component is a component of
26862         the argument of an initialization procedure.
26863
26864         * trans.c (tree_transform, case of arithmetic operators): If result
26865         type is private, the gnu_type is the base type of the full view,
26866         given that the full view itself may be a subtype.
26867
26868 2001-12-17  Robert Dewar <dewar@gnat.com>
26869
26870         * sem_res.adb: Minor reformatting
26871
26872         * trans.c (tree_transform, case N_Real_Literal): Add missing third
26873         parameter in call to Machine (unknown horrible effects from this
26874         omission).
26875
26876         * urealp.h: Add definition of Round_Even for call to Machine
26877         Add third parameter for Machine
26878
26879 2001-12-17  Ed Schonberg <schonber@gnat.com>
26880
26881         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
26882         predefined units in No_Run_Time mode.
26883
26884 2001-12-17  Richard Kenner <kenner@gnat.com>
26885
26886         * misc.c (insn-codes.h): Now include.
26887
26888 2001-12-17  Olivier Hainque <hainque@gnat.com>
26889
26890         * a-except.adb: Preparation work for future integration of the GCC 3
26891         exception handling mechanism
26892         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
26893         to factorize previous code sequences and make them externally callable,
26894         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
26895         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
26896         Use the new notification routines.
26897
26898 2001-12-17  Emmanuel Briot <briot@gnat.com>
26899
26900         * prj-tree.ads (First_Choice_Of): Document the when others case
26901
26902 2001-12-17  Arnaud Charlet <charlet@gnat.com>
26903
26904         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
26905         HI-E mode, in order to support Ravenscar profile properly.
26906
26907         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
26908         mode on 32 bits targets.
26909
26910 2001-12-17  Vincent Celier <celier@gnat.com>
26911
26912         * fmap.adb: Initial version.
26913
26914         * fmap.ads: Initial version.
26915
26916         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
26917         If search is successfully done, add to mapping.
26918
26919         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
26920
26921         * make.adb:
26922         (Gnatmake): Add new local variable Mapping_File_Name.
26923          Create mapping file when using project file(s).
26924          Delete mapping file before exiting.
26925
26926         * opt.ads (Mapping_File_Name): New variable
26927
26928         * osint.adb (Find_File): Use path name found in mapping, if any.
26929
26930         * prj-env.adb (Create_Mapping_File): New procedure
26931
26932         * prj-env.ads (Create_Mapping_File): New procedure.
26933
26934         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
26935         (Mapping_File)
26936
26937         * usage.adb: Add entry for new switch -gnatem.
26938
26939         * Makefile.in: Add dependencies for fmap.o.
26940
26941 2001-12-17  Ed Schonberg <schonber@gnat.com>
26942
26943         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
26944         is a package instantiation rewritten as a package body.
26945         (Install_Withed_Unit): Undo previous change, now redundant.
26946
26947 2001-12-17  Gary Dismukes <dismukes@gnat.com>
26948
26949         * layout.adb:
26950         (Compute_Length): Move conversion to Unsigned to callers.
26951         (Get_Max_Size): Convert Len expression to Unsigned after calls to
26952         Compute_Length and Determine_Range.
26953         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
26954         Compute_Length and Determine_Range.
26955         Above changes fix problem with length computation for supernull arrays
26956         where Max (Len, 0) wasn't getting applied due to the Unsigned
26957         conversion used by Compute_Length.
26958
26959 2001-12-17  Arnaud Charlet <charlet@gnat.com>
26960
26961         * rtsfind.ads:
26962         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
26963          System.Secondary_Stack.
26964         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
26965          in HI-E mode.
26966         Remove unused entity RE_Exception_Data.
26967
26968         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
26969
26970         * rident.ads (No_Secondary_Stack): New restriction.
26971
26972 2001-12-17  Joel Brobecker <brobecke@gnat.com>
26973
26974         * gnat_rm.texi: Fix minor typos. Found while reading the section
26975         regarding "Bit_Order Clauses" that was sent to a customer.
26976         Very interesting documentation!
26977
26978 2001-12-17  Robert Dewar <dewar@gnat.com>
26979
26980         * sem_case.adb (Choice_Image): Avoid creating improper character
26981         literal names by using the routine Set_Character_Literal_Name. This
26982         fixes bombs in certain error message cases.
26983
26984 2001-12-17  Arnaud Charlet <charlet@gnat.com>
26985
26986         * a-reatim.adb: Minor reformatting.
26987
26988 2001-12-17  Ed Schonberg <schonber@gnat.com>
26989
26990         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
26991         case where the formal is an extension of another formal in the current
26992         unit or in a parent generic unit.
26993
26994 2001-12-17  Arnaud Charlet <charlet@gnat.com>
26995
26996         * s-tposen.adb: Update comments.  Minor reformatting.
26997         Minor code clean up.
26998
26999         * s-tarest.adb: Update comments.  Minor code reorganization.
27000
27001 2001-12-17  Gary Dismukes <dismukes@gnat.com>
27002
27003         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
27004         when Java_VM.
27005
27006 2001-12-17  Robert Dewar <dewar@gnat.com>
27007
27008         * exp_attr.adb: Minor reformatting
27009
27010 2001-12-17  Ed Schonberg <schonber@gnat.com>
27011
27012         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
27013         derivations nested within a child unit: verify that the parent
27014         type is declared in an outer scope.
27015
27016 2001-12-17  Robert Dewar <dewar@gnat.com>
27017
27018         * sem_ch12.adb: Minor reformatting
27019
27020 2001-12-17  Ed Schonberg <schonber@gnat.com>
27021
27022         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
27023         warning if current unit is a predefined one, from which bodies may
27024         have been deleted.
27025
27026 2001-12-17  Robert Dewar <dewar@gnat.com>
27027
27028         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
27029         Fix header format. Add 2001 to copyright date.
27030
27031         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
27032         which caused CE during compilation if checks were enabled.
27033
27034 2001-12-17  Vincent Celier <celier@gnat.com>
27035
27036         * make.adb:
27037         (Switches_Of): New function
27038         (Test_If_Relative_Path): New procedure
27039         (Add_Switches): Use new function Switches_Of
27040         (Collect_Arguments_And_Compile): Use new function Switches_Of.
27041         When using a project file, test if there are any relative
27042         search path. Fail if there are any.
27043         (Gnatmake): Only add switches for the primary directory when not using
27044         a project file. When using a project file, change directory to the
27045         object directory of the main project file. When using a project file,
27046         test if there are any relative search path. Fail if there are any.
27047         When using a project file, fail if specified executable is relative
27048         path with directory information, and prepend executable, if not
27049         specified as an absolute path, with the exec directory.  Make sure
27050         that only one -o switch is transmitted to the linker.
27051
27052         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
27053
27054         * prj-nmsc.adb:
27055         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
27056         when using a non standard naming scheme.
27057         (Check_Ada_Naming_Scheme): Make sure that error messages
27058         do not raise exceptions.
27059         (Is_Illegal_Append): Return True if there is no dot in the suffix.
27060         (Language_Independent_Check): Check the exec directory.
27061
27062         * prj.adb (Project_Empty): Add new component Exec_Directory
27063
27064         * prj.ads:
27065         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
27066         (Project_Data): Add component Exec_Directory
27067
27068         * snames.adb: Updated to match snames.ads revision 1.215
27069
27070         * snames.ads: Added Exec_Dir
27071
27072 2001-12-17  Robert Dewar <dewar@gnat.com>
27073
27074         * make.adb: Minor reformatting
27075
27076         * prj-nmsc.adb: Minor reformatting
27077
27078         * snames.adb: Updated to match snames.ads
27079
27080         * snames.ads: Alphebetize entries for project file
27081
27082 2001-12-17  Ed Schonberg <schonber@gnat.com>
27083
27084         * trans.c (process_freeze_entity): Do nothing if the entity is a
27085         subprogram that was already elaborated.
27086
27087 2001-12-17  Richard Kenner <kenner@gnat.com>
27088
27089         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
27090         and Esize if object is referenced via pointer.
27091
27092 2001-12-17  Ed Schonberg <schonber@gnat.com>
27093
27094         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
27095         is discrete before analyzing choices.
27096
27097 2001-12-17  Joel Brobecker <brobecke@gnat.com>
27098
27099         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
27100         containing the name of the Ada Main Program. This string is mainly
27101         intended for the debugger.
27102         (Gen_Output_File_C): Do the equivalent change when generating a C file.
27103
27104 2001-12-17  Robert Dewar <dewar@gnat.com>
27105
27106         * ali.adb: Set new Dummy_Entry field in dependency entry
27107
27108         * ali.ads: Add Dummy_Entry field to source dependency table
27109
27110         * bcheck.adb (Check_Consistency): Ignore dummy D lines
27111
27112         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
27113
27114         * lib-writ.ads: Document dummy D lines for missing files.
27115
27116         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
27117
27118 2001-12-17  Robert Dewar <dewar@gnat.com>
27119
27120         * ali.adb: Type reference does not reset current file.
27121
27122         * ali.adb: Recognize and scan renaming reference
27123
27124         * ali.ads: Add spec for storing renaming references.
27125
27126         * lib-xref.ads: Add documentation for handling of renaming references
27127
27128         * lib-xref.adb: Implement output of renaming reference.
27129
27130         * checks.adb:
27131         (Determine_Range): Document local variables
27132         (Determine_Range): Make sure Hbound is initialized. It looks as though
27133          there could be a real problem here with an uninitialized reference
27134          to Hbound, but no actual example of failure has been found.
27135
27136 2001-12-17  Laurent Pautet <pautet@gnat.com>
27137
27138         * g-socket.ads:
27139         Fix comment of Shutdown_Socket and Close_Socket. These functions
27140         should not fail silently because if they are called twice, this
27141         probably means that there is a race condition in the user program.
27142         Anyway, this behaviour is consistent with the rest of this unit.
27143         When an error occurs, an exception is raised with the error message
27144         as exception message.
27145
27146 2001-12-17  Robert Dewar <dewar@gnat.com>
27147
27148         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
27149         that it happens before modification of Sloc values for -gnatD.
27150
27151         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
27152         so that it happens before modification of Sloc values for -gnatD.
27153
27154         * switch.adb: Minor reformatting
27155
27156 2001-12-15  Richard Henderson  <rth@redhat.com>
27157
27158         * sem_ch7.adb: Wrap comment.
27159
27160 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
27161
27162         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
27163         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
27164         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
27165         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
27166         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
27167         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
27168         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
27169         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
27170         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
27171         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
27172         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
27173         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
27174         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
27175         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
27176         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
27177         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
27178         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
27179         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
27180         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
27181         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
27182         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
27183         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
27184         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
27185         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
27186         spelling errors.
27187
27188 2001-12-14  Vincent Celier <celier@gnat.com>
27189
27190         * osint.adb(Create_Debug_File): When an object file is specified,
27191         put the .dg file in the same directory as the object file.
27192
27193 2001-12-14  Robert Dewar <dewar@gnat.com>
27194
27195         * osint.adb: Minor reformatting
27196
27197         * lib-xref.adb (Output_Instantiation): New procedure to generate
27198         instantiation references.
27199
27200         * lib-xref.ads: Add documentation of handling of generic references.
27201
27202         * ali.adb (Read_Instantiation_Ref): New procedure to read
27203         instantiation references
27204
27205         * ali.ads: Add spec for storing instantiation references
27206
27207         * bindusg.adb: Minor reformatting
27208
27209         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
27210
27211         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
27212
27213         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
27214
27215         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
27216
27217         * csets.ads:
27218         Fix header format
27219         Add 2001 to copyright date
27220         Add entry for Latin-5 (Cyrillic ISO-8859-5)
27221
27222 2001-12-14  Matt Gingell <gingell@gnat.com>
27223
27224         * adaint.c: mktemp is a macro on Lynx and can not be used as an
27225         expression.
27226
27227 2001-12-14  Richard Kenner <kenner@gnat.com>
27228
27229         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
27230         if operand is CONSTRUCTOR.
27231
27232 2001-12-14  Ed Schonberg <schonber@gnat.com>
27233
27234         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
27235         before emiting check on right-hand side, so that exception information
27236         is correct.
27237
27238 2001-12-14  Richard Kenner <kenner@gnat.com>
27239
27240         * utils.c (create_var_decl): Throw away initializing expression
27241         if just annotating types and non-constant.
27242
27243 2001-12-14  Vincent Celier <celier@gnat.com>
27244
27245         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
27246         Default_Ada_...
27247
27248         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
27249         Remove functions.
27250         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
27251
27252         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
27253         Remove functions.
27254         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
27255
27256 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
27257
27258         * ChangeLog: Remove piece of diff output.
27259
27260 2001-12-14  Geert Bosch <bosch@gnat.com>
27261
27262         * config-lang.in: Update copyright notice
27263
27264         * layout.adb: Remove commented out code.
27265
27266         * mdllfile.ads: Update copyright notice. Fix header format.
27267
27268         * sem_case.ads: Likewise.
27269
27270         * sem_ch3.adb: Minor reformatting.
27271
27272 2001-12-12  Geert Bosch <bosch@gnat.com>
27273
27274         * freeze.ads: Update copyright date.
27275
27276         * g-comlin.ads: Minor reformatting.
27277
27278         * gnat-style.texi: Fix typo.
27279
27280 2001-12-12  Geert Bosch <bosch@gnat.com>
27281
27282         *  einfo.h: Regenerate.
27283
27284 2001-12-12  Ed Schonberg <schonber@gnat.com>
27285
27286         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
27287         on known node types, rather than untyped fields. Further cleanups.
27288
27289 2001-12-12  Robert Dewar <dewar@gnat.com>
27290
27291         * sem_ch12.adb:
27292         (Save_Entity_Descendant): Minor comment update.
27293         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
27294          of an N_Attribute_Reference node. As per note below, this does not
27295         eliminate need for Associated_Node in attribute ref nodes.
27296         (Associated_Node): Documentation explicitly mentions attribute
27297         reference nodes, since this field is used in such nodes.
27298
27299         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
27300
27301 2001-12-12  Robert Dewar <dewar@gnat.com>
27302
27303         * s-stalib.adb: Add more comments on with statements being needed
27304
27305         * par-ch12.adb: Minor reformatting
27306
27307         * prj-dect.ads: Fix copyright header
27308
27309         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
27310         inputs fit in 32 bits, but the result still overflows.
27311
27312         * s-fatgen.ads: Minor comment improvement
27313
27314 2001-12-12  Ed Schonberg <schonber@gnat.com>
27315
27316         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
27317         formal derived type, look for an inherited component from the full
27318         view of the parent, if any.
27319
27320 2001-12-12  Robert Dewar <dewar@gnat.com>
27321
27322         * checks.ads (Apply_Alignment_Check): New procedure.
27323
27324         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
27325         ensure that the alignment of objects with address clauses is
27326         appropriate, and raise PE if not.
27327
27328         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
27329         Exp_Pakd.Known_Aligned_Enough
27330
27331         * mdllfile.ads: Minor reformatting
27332
27333         * mlib-fil.ads: Minor reformatting
27334
27335 2001-12-12  Ed Schonberg <schonber@gnat.com>
27336
27337         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
27338         fix to any component reference if enclosing record has non-standard
27339         representation.
27340
27341 2001-12-12  Vincent Celier <celier@gnat.com>
27342
27343         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
27344         Iteration
27345
27346 2001-12-12  Ed Schonberg <schonber@gnat.com>
27347
27348         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
27349         sem_attr.
27350
27351 2001-12-12  Robert Dewar <dewar@gnat.com>
27352
27353         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
27354
27355 2001-12-12  Emmanuel Briot <briot@gnat.com>
27356
27357         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
27358         and it adds dependencies to system.io.
27359
27360 2001-12-12  Pascal Obry <obry@gnat.com>
27361
27362         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
27363         variable name.
27364
27365 2001-12-11  Ed Schonberg <schonber@gnat.com>
27366
27367         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
27368         that is the parent of other generics, the instance body replaces the
27369         instance node.  Retrieve the instance of the spec, which is the one
27370         that is visible in clients and within the body.
27371
27372 2001-12-11  Vincent Celier <celier@gnat.com>
27373
27374         * gnatmain.adb: Initial version.
27375
27376         * gnatmain.ads: Initial version.
27377
27378         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
27379
27380         * snames.adb: Updated to match snames.ads.
27381
27382         * snames.ads: Added Gnatstub.
27383
27384 2001-12-11  Vincent Celier <celier@gnat.com>
27385
27386         * prj-attr.adb (Initialization_Data): Change name from
27387         Initialisation_Data.
27388
27389 2001-12-11  Emmanuel Briot <briot@gnat.com>
27390
27391         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
27392         + and * applied to backslashed expressions like \r.
27393
27394 2001-12-11  Vasiliy Fofanov <fofanov@gnat.com>
27395
27396         * g-os_lib.ads: String_List type added, Argument_List type is now
27397         subtype of String_List.
27398
27399 2001-12-11  Robert Dewar <dewar@gnat.com>
27400
27401         * g-os_lib.ads: Change copyright to FSF
27402         Add comments for String_List type
27403
27404 2001-12-11  Vincent Celier <celier@gnat.com>
27405
27406         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
27407         string to the buffer).
27408
27409 2001-12-11  Ed Schonberg <schonber@gnat.com>
27410
27411         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
27412         sem_attr.
27413
27414         * sem_attr.adb: Simplify previous fix for Address.
27415         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
27416         to avoid anomalies where the bound of the type appears to raise
27417         constraint error.
27418
27419 2001-12-11  Robert Dewar <dewar@gnat.com>
27420
27421         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
27422         handled.
27423
27424 2001-12-11  Ed Schonberg <schonber@gnat.com>
27425
27426         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
27427         renamed unit before checking for recursive instantiations.
27428
27429 2001-12-11  Emmanuel Briot <briot@gnat.com>
27430
27431         * prj.ads: Add comments for some of the fields.
27432
27433 2001-12-11  Robert Dewar <dewar@gnat.com>
27434
27435         * lib-xref.adb (Output_Refs): Don't output type references outside
27436         the main unit if they are not otherwise referenced.
27437
27438 2001-12-11  Ed Schonberg <schonber@gnat.com>
27439
27440         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
27441         code and diagnose additional illegal uses
27442
27443         * sem_util.adb (Is_Object_Reference): An indexed component is an
27444         object only if the prefix is.
27445
27446 2001-12-11  Vincent Celier <celier@gnat.com>
27447
27448         * g-diopit.adb: Initial version.
27449
27450         * g-diopit.ads: Initial version.
27451
27452         * g-dirope.adb:
27453         (Expand_Path): Avoid use of Unbounded_String
27454         (Find, Wildcard_Iterator): Moved to child package Iteration
27455
27456         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
27457
27458 2001-12-11  Robert Dewar <dewar@gnat.com>
27459
27460         * sem_attr.adb: Minor reformatting
27461
27462 2001-12-11  Ed Schonberg <schonber@gnat.com>
27463
27464         * sem_ch3.adb: Clarify some ???.
27465
27466 2001-12-11  Robert Dewar <dewar@gnat.com>
27467
27468         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
27469         Exp_Pakd.Known_Aligned_Enough
27470
27471         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
27472         version is moved to Exp_Ch13.
27473
27474 2001-12-11  Robert Dewar <dewar@gnat.com>
27475
27476         * einfo.ads: Minor reformatting
27477
27478         * exp_ch5.adb: Add comment for previous.change
27479
27480         * ali.adb: New interface for extended typeref stuff.
27481
27482         * ali.ads: New interface for typeref stuff.
27483
27484         * checks.adb (Apply_Alignment_Check): New procedure.
27485
27486         * debug.adb: Add -gnatdM for modified ALI output
27487
27488         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
27489
27490         * lib-xref.adb: Extend generation of <..> notation to cover
27491         subtype/object types. Note that this is a complete rewrite,
27492         getting rid of the very nasty quadratic algorithm previously
27493         used for derived type output.
27494
27495         * lib-xref.ads: Extend description of <..> notation to cover
27496         subtype/object types. Uses {..} for these other cases.
27497         Also use (..) for pointer types.
27498
27499         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
27500
27501         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
27502         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
27503
27504 2001-12-11  Vincent Celier <celier@gnat.com>
27505
27506         * gnatcmd.adb:
27507         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
27508         Changed /BIND_ONLY to /ACTIONS=BIND
27509         Changed /LINK_ONLY to /ACTIONS=LINK
27510
27511 2001-12-11  Ed Schonberg  <schonber@gnat.com>
27512
27513         * sem_ch8.adb (Find_Selected_Component): improved search for a
27514         candidate package in case of error.
27515
27516         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
27517         chain back on scope stack before reinstalling use clauses.
27518
27519         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
27520         is enabled, do not kill the code for the condition, to preserve
27521         warning.
27522
27523 2001-12-11  Robert Dewar <dewar@gnat.com>
27524
27525         * checks.adb (Insert_Valid_Check): Apply validity check to expression
27526         of conversion, not to result of conversion.
27527
27528 2001-12-11  Ed Schonberg <schonber@gnat.com>
27529
27530         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
27531         before freezing parent. If the declarations are mutually recursive,
27532         an access to the current record type may be frozen before the
27533         derivation is complete.
27534
27535 2001-12-05  Vincent Celier <celier@gnat.com>
27536
27537         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
27538         -c /COMPILE_ONLY, -l /LINK_ONLY
27539
27540         * opt.ads:
27541         (Bind_Only): New Flag
27542         (Link_Only): New flag
27543
27544         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
27545         and -l (Link_Only)
27546
27547         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
27548
27549         * make.adb:
27550         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
27551         (Gnatmake): Set the step flags. Only perform a step if the
27552         corresponding step flag is True.
27553         (Scan_Make_Arg): Reset the bind and link step flags when -u
27554         or -gnatc has been specified.
27555
27556 2001-12-05  Ed Schonberg <schonber@gnat.com>
27557
27558         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
27559         get bounds from right operand.
27560
27561         * sem_eval.adb: Minor reformatting
27562
27563         * exp_util.adb (Make_Literal_Range): use bound of literal rather
27564         than Index'First, its lower bound may be different from 1.
27565
27566         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
27567         and C48009J
27568
27569 2001-12-05  Vincent Celier <celier@gnat.com>
27570
27571         * prj-nmsc.adb Minor reformatting
27572
27573         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
27574         set and libraries are not supported.
27575
27576 2001-12-05  Ed Schonberg <schonber@gnat.com>
27577
27578         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
27579         private view explicitly, so the back-end can treat as a global
27580         when appropriate.
27581
27582 2001-12-05  Ed Schonberg <schonber@gnat.com>
27583
27584         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
27585          unit, always replace instance node with new body, for ASIS use.
27586
27587 2001-12-05  Vincent Celier <celier@gnat.com>
27588
27589         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
27590         libraries are not supported and both attributes Library_Name and
27591         Library_Dir are specified.
27592
27593         * prj-proc.adb (Expression): Set location of Result to location of
27594         first term.
27595
27596         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
27597         (prj-nmsc is now importing MLib.Tgt)
27598
27599         * prj-proc.adb: Put the change indicated above that was forgotten.
27600
27601 2001-12-05  Robert Dewar <dewar@gnat.com>
27602
27603         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
27604
27605 2001-12-05  Ed Schonberg <schonber@gnat.com>
27606
27607         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
27608         constraint, introduce explicit subtype declaration and derive from it.
27609
27610         * sem_ch3.adb: Minor reformatting
27611
27612 2001-12-05  Robert Dewar <dewar@gnat.com>
27613
27614         * checks.adb (Determine_Range): Increase cache size for checks.
27615         Minor reformatting
27616
27617         * exp_ch6.adb: Minor reformatting
27618         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
27619         a parameter whose root type is System.Address, since treating such
27620         subprograms as pure in the code generator is almost surely a mistake
27621         that will lead to unexpected results.
27622
27623         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
27624         change handling of conversions.
27625
27626         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
27627
27628 2001-12-05  Ed Schonberg <schonber@gnat.com>
27629
27630         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
27631         aggregate with static wrong size, attach generated Raise node to
27632         declaration.
27633
27634 2001-12-05  Robert Dewar <dewar@gnat.com>
27635
27636         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
27637         Fixes compilation abandoned bomb in B24009B.
27638
27639 2001-12-05  Ed Schonberg <schonber@gnat.com>
27640
27641         * sem_ch12.adb:
27642         Document use of Associated_Node on Selected_Components.
27643         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
27644         to clarify use of untyped descendant fields.
27645
27646 2001-12-05  Robert Dewar <dewar@gnat.com>
27647
27648         * prj-dect.ads: Add ??? comment
27649         Add 2001 to copyright notice (was not done in after all)
27650
27651         * prj-part.adb: Minor reformatting. Reword one awkward error message.
27652
27653         * prj.ads: Minor reformatting throughout, and add some ??? comments
27654
27655         * snames.ads: Minor reformatting
27656
27657 2001-12-05  Geert Bosch <bosch@gnat.com>
27658
27659         * snames.adb: Autoupdate
27660
27661 2001-12-05  Vincent Celier <celier@gnat.com>
27662
27663         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
27664
27665         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
27666
27667         * prj-env.adb: Minor comment changes (modifying -> extends).
27668
27669         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
27670
27671         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
27672         Tok_Extends.
27673
27674         * prj.adb (Initialize): Change Modifying to Extends.
27675
27676         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
27677
27678         * prj.ads: Minor comment change (Modifying -> extending).
27679
27680         * snames.ads: Change modifying to extends.
27681
27682 2001-12-05  Robert Dewar <dewar@gnat.com>
27683
27684         * sem_warn.adb: Remove stuff for conditionals, we are not going to
27685         do this after all.
27686
27687         * sem_warn.ads: Remove stuff for conditionals, we are not going to
27688         do this after all.  Add 2001 to copyright notice
27689
27690 2001-12-04  Geert Bosch <bosch@gnat.com>
27691
27692         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
27693
27694 2001-12-04  Robert Dewar <dewar@gnat.com>
27695
27696         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
27697         location if we already have errors. Stops some cases of cascaded
27698         errors.
27699
27700         * errout.adb: Improve comment.
27701
27702 2001-12-04  Robert Dewar <dewar@gnat.com>
27703
27704         * sem_ch12.adb:
27705         (Analyze_Formal_Type_Definition): Defend against Error.
27706         (Analyze_Formal_Subprogram): Defend against Error.
27707
27708         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
27709         remove following semicolon if present. Removes cascaded error.
27710
27711 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
27712
27713         * bindgen.adb:
27714         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
27715          exceptions equals 0.
27716         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
27717         Fixes PIWG E tests (which have to be run with -gnatL).
27718
27719 2001-12-04  Robert Dewar <dewar@gnat.com>
27720
27721         * einfo.ads: Minor reformatting
27722
27723 2001-12-04  Ed Schonberg <schonber@gnat.com>
27724
27725         * einfo.ads: Block_Node points to the identifier of the block, not to
27726         the block node itself, to preserve the link when the block is
27727         rewritten, e.g. within an if-statement with a static condition.
27728
27729         * inline.adb (Cleanup_Scopes): recover block statement from block
27730         entity using new meaning of Block_Node.
27731
27732         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
27733         identifier of block node, rather than to node itself.
27734
27735 2001-12-04  Gary Dismukes <dismukes@gnat.com>
27736
27737         * layout.adb:
27738         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
27739         (Discrimify): Go back to setting the Etypes of the selected component
27740         because the Vname component does not exist at this point and will
27741         fail name resolution. Also set Analyzed.
27742         Remove with and use of Sem_Res.
27743
27744 2001-12-04  Arnaud Charlet <charlet@gnat.com>
27745
27746         * Makefile.in: (HIE_SOURCES): add s-fat*.
27747
27748 2001-12-04  Robert Dewar <dewar@gnat.com>
27749
27750         * sem_attr.adb:
27751         (Compile_Time_Known_Attribute): New procedure.
27752         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
27753          proper range check.
27754
27755 2001-12-04  Ed Schonberg <schonber@gnat.com>
27756
27757         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
27758         processing discriminants to diagnose illegal default values.
27759
27760 2001-12-04  Ed Schonberg <schonber@gnat.com>
27761
27762         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
27763         access discriminant within a type extension that constrains its
27764         parent discriminants.
27765
27766 2001-12-04  Ed Schonberg <schonber@gnat.com>
27767
27768         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
27769         is malformed, use instance of Any_Id to allow analysis to proceed.
27770
27771         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
27772         type definition is illegal.
27773         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
27774         misplaced.
27775
27776 2001-12-04  Ed Schonberg <schonber@gnat.com>
27777
27778         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
27779         constants.
27780
27781 2001-12-04  Robert Dewar <dewar@gnat.com>
27782
27783         * errout.adb: Minor reformatting
27784
27785 2001-12-04  Robert Dewar <dewar@gnat.com>
27786
27787         * exp_util.adb: Minor reformatting from last change
27788
27789         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
27790         which is a rewriting of an expression, traverse the original
27791         expression to remove warnings that may have been posted on it.
27792
27793 2001-12-04  Ed Schonberg <schonber@gnat.com>
27794
27795         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
27796         record that has other packed components.
27797
27798 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
27799
27800         * adaint.c: Minor cleanups.
27801
27802 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
27803
27804         * adaint.c: Do not use utime.h on vxworks.
27805
27806 2001-12-04  Arnaud Charlet <charlet@gnat.com>
27807
27808         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
27809         more confusion than it solves.
27810
27811 2001-12-04  Geert bosch <bosch@gnat.com>
27812
27813         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
27814
27815 2001-12-04  Geert Bosch  <bosch@gnat.com>
27816
27817         * Makefile.in (update-sources): New target.
27818         For use by gcc_release script.
27819
27820 2001-12-04  Ed Schonberg <schonber@gnat.com>
27821
27822         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
27823         a configuration pragma, it is now legal wherever a pragma can appear.
27824
27825 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
27826
27827         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
27828         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
27829         is now @CROSS@ -DIN_GCC; update comment.
27830
27831 2001-12-04  Robert Dewar <dewar@gnat.com>
27832
27833         * einfo.adb (Has_Pragma_Pure_Function): New flag.
27834         Fix problem that stopped ceinfo from working
27835
27836         * einfo.ads (Has_Pragma_Pure_Function): New flag.
27837
27838         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
27839
27840 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
27841
27842         * gnatchop.adb:
27843         (File_Time_Stamp): New procedure.
27844         (Preserve_Mode): New boolean.
27845         (Write_Unit): Pass time stamp.
27846         Implement -p switch (preserve time stamps).
27847
27848         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
27849
27850         * gnatchop.adb: Do usage info for -p switch
27851
27852         * adaint.h (__gnat_set_file_time_name): New function
27853
27854         * adaint.c (__gnat_set_file_time_name): Implement
27855
27856         * adaint.h: Fix typo
27857
27858 2001-12-03  Robert Dewar <dewar@gnat.com>
27859
27860         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
27861         have Associated_Node.
27862
27863 2001-12-03  Robert Dewar <dewar@gnat.com>
27864
27865         * prj-proc.adb: Minor reformatting
27866
27867         * make.adb: Minor reformatting
27868
27869 2001-12-03  Geert Bosch <bosch@gnat.com>
27870
27871         * make.adb: Minor reformatting.
27872
27873 2001-12-03 Robert Dewar  <dewar@gnat.com>
27874
27875         * sem_ch12.adb: Minor reformatting
27876
27877 2001-12-03  Ed Schonberg <schonber@gnat.com>
27878
27879         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
27880         push Standard on the stack before analyzing the instance body,
27881         in order to have a clean visibility environment.
27882
27883         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
27884
27885 2001-12-03  Ed Schonberg <schonber@gnat.com>
27886
27887         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
27888         instantiation of a body that contains an inlined body.
27889
27890 2001-12-03  Ed Schonberg <schonber@gnat.com>
27891
27892         * sem_ch12.adb:
27893         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
27894         to prevent freezing within formal packages.
27895         (Freeze_Subprogram_Body): If body comes from another instance that
27896         appeared before its own body, place freeze node at end of current
27897         declarative part, to prevent a back-end crash.
27898         (Inline_Instance_Body): Handle properly a package instance within
27899         a subprogram instance that is a child unit.
27900
27901 2001-12-01  Graham Stott  <grahams@redhat.com>
27902
27903         * Makefile.in (misc.o): Add missing $(srcdir) prefix
27904         and add optabs.h dependency.
27905
27906         * misc.c: Include optabs.h
27907         (gnat_tree_code_type): Make static and const.
27908         (gnat_tree_code_length): Likewise.
27909         (gnat_tree_code_name): Likewise.
27910         (update_setjmp_buf): Obtain operands mode from insn_data.
27911
27912 2001-11-29  Richard Henderson  <rth@redhat.com>
27913
27914         * init.c: Remove obsolete dwarf2 frame.h section.
27915
27916 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
27917
27918         * Make-lang.in (ada.generated-manpages): New dummy target.
27919
27920 2001-11-29  Ed Schonberg <schonber@gnat.com>
27921
27922         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
27923         into Command, an array conversion is illegal here. Uncovered by
27924         ACATS B460005.
27925
27926 2001-11-28  Geert Bosch <bosch@gnat.com>
27927
27928         * init.c: Minor whitespace changes.
27929
27930 2001-11-28  Doug Rupp <rupp@gnat.com>
27931
27932         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
27933         signal stack.
27934
27935 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
27936
27937         * misc.c (gnat_expand_constant): Move declaration above
27938         definition of lang_hooks.
27939         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
27940         (gnat_init): lang_expand_constant no longer exists.
27941
27942         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
27943         always have vprintf.
27944         (gnat_init): Always call set_internal_error_function.
27945
27946 2001-11-27  Andreas Jaeger  <aj@suse.de>
27947
27948         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
27949
27950 2001-11-27  Laurent Guerby  <guerby@acm.org>
27951
27952         * Makefile.in: Regenerate Ada dependencies.
27953
27954 2001-11-26  Richard Henderson  <rth@redhat.com>
27955
27956         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
27957         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
27958         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
27959
27960 2001-11-25  Laurent Guerby  <guerby@acm.org>
27961
27962         * sysdep.c (rts_get_*): Fix style.
27963
27964 2001-11-19  Laurent Guerby  <guerby@acm.org>
27965
27966         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
27967         since it is of no apparent use and cause warnings.
27968
27969 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
27970
27971         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
27972         static too.
27973         (gnat_init): Don't return NULL.
27974         (finish_parse): Remove.
27975
27976 2001-11-17  Laurent Guerby  <guerby@acm.org>
27977
27978         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
27979         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
27980         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
27981         * lang-spec.h: Add missing struct field to silence warnings.
27982         * sysdep.c (rts_get_*): Provide K&R prototype.
27983         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
27984         * traceback.c (Unlock_Task, Lock_Task): Likewise.
27985         * tracebak.c (__gnat_backtrace): Remove unused variable.
27986         * utils.c (end_subprog_body): Move to K&R style.
27987
27988 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27989
27990         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
27991
27992 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
27993
27994         * misc.c (gnat_init): Change prototype.  Include the
27995         functionality of the old init_parse and init_decl_processing.
27996         (gnat_init_decl_processing): New prototype.
27997         (init_parse): Remove.
27998         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
27999
28000 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
28001
28002         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
28003         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
28004         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
28005         set_yydebug): Remove.
28006
28007 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
28008
28009         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
28010         (struct lang_hooks): Constify.
28011         (language_string, lang_identify): Remove.
28012         * utils.c (init_decl_processing): Update.
28013
28014 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
28015
28016         * misc.c: Include langhooks-def.h.
28017         * Makefile.in: Update.
28018
28019 2001-10-30  Robert Dewar <dewar@gnat.com>
28020
28021         * style.adb:
28022         (Check_Identifier): Rewrite circuit to be compatible with use of letters
28023         in the upper half of ASCII.
28024         (Check_Identifier): Minor reformatting
28025
28026 2001-10-30  Geert Bosch <bosch@gnat.com>
28027
28028         * (Associated_Node, Set_Associated_Node): Do not check for
28029         Freeze_Entity.
28030
28031 2001-10-30  Robert Dewar <dewar@gnat.com>
28032
28033         * a-reatim.ads: Minor reformatting
28034
28035 2001-10-30  Robert Dewar <dewar@gnat.com>
28036
28037         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
28038         undocumented declarations.
28039
28040 2001-10-30  Pascal Obry <obry@gnat.com>
28041
28042         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
28043         to the binder and linker.
28044         Minor style fix.
28045
28046         * mdll.ads: Fix layout.  Update copyright notice.
28047
28048         * mdll.adb: Fix layout.  Update copyright notice.
28049
28050 2001-10-30  Robert Dewar <dewar@gnat.com>
28051
28052         * usage.adb: Minor fix to output for -gnaty.
28053
28054 2001-10-30  Ed Schonberg <schonber@gnat.com>
28055
28056         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
28057         to accommodate all its possible values.
28058
28059         * a-reatim.adb (Split): Special-case handling of Time_Span_First
28060         and of small absolute values of T.
28061
28062 2001-10-30  Richard Kenner <kenner@gnat.com>
28063
28064         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
28065         set_mem_attributes since not needed and wrong if RESULT if a REG;
28066         fixes ACATS failures.
28067
28068 2001-10-30  Geert Bosch <bosch@gnat.com>
28069
28070         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
28071         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
28072
28073 2001-10-30  Robert Dewar <dewar@gnat.com>
28074
28075         * bindusg.adb: Undocument -f switch.
28076
28077         * gnatcmd.adb: Remove /FULL_ELABORATION.
28078
28079         * opt.ads (Force_RM_Elaboration_Order): Document that this is
28080         obsolescent.
28081
28082         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
28083
28084         * gnatbind.adb: Minor update of warning msg.
28085
28086 2001-10-30  Vincent Celier <celier@gnat.com>
28087
28088         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
28089         for project file switches (-P (/PROJECT_FILE=),
28090          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
28091         or MEDIUM or HIGH)
28092
28093 2001-10-30  Geert Bosch <bosch@gnat.com>
28094
28095         * decl.c: Minor whitespace fixes.
28096
28097 2001-10-30  Richard Kenner <kenner@gnat.com>
28098
28099         * utils2.c (build_allocator): Test for SIZE overflow in array case too
28100
28101 2001-10-30  Geert Bosch <bosch@gnat.com>
28102
28103         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
28104         Found due to GCC 3.0 warning of using uninitialized value.
28105
28106         * layout.adb:
28107         (Get_Max_Size): Use variant record for tracking value/expression.
28108          Makes logic clearer and prevents warnings for uninitialized variables.
28109         (Layout_Array_Type): Use variant record for tracking value/expression.
28110          Makes logic clearer and prevents warnings for uninitialized variables.
28111
28112 2001-10-30  Robert Dewar <dewar@gnat.com>
28113
28114         * lib.adb: Minor reformatting
28115
28116         * s-taprop.ads: Minor reformatting
28117
28118 2001-10-29  Laurent Guerby  <guerby@acm.org>
28119
28120         * init.c:
28121         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
28122         const.
28123         (_gnat_error_handler): Make MSG const.
28124
28125 2001-10-29  Richard Kenner <kenner@gnat.com>
28126
28127         * sysdep.c: Fix localtime_r problem on LynxOS.
28128         Also remove #elif to avoid warnings.
28129
28130         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
28131         used by this.
28132
28133         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
28134
28135 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
28136
28137         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
28138         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
28139         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
28140         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
28141         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
28142         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
28143         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
28144         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
28145         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
28146         types.ads, urealp.adb: Fix spelling errors.
28147
28148 2001-10-27  Laurent Guerby <guerby@acm.org>
28149
28150         * trans.c (gigi): Fix non determinism leading to bootstrap
28151         comparison failures for debugging information.
28152
28153 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
28154
28155         * gnat_rm.texi: Use @./@: where appropriate.
28156
28157 2001-10-26  Robert Dewar <dewar@gnat.com>
28158
28159         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
28160
28161 2001-10-26  Richard Kenner <kenner@gnat.com>
28162
28163         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
28164
28165 2001-10-26  Richard Kenner <kenner@gnat.com>
28166
28167         * decl.c (validate_size): Modify message for bad size to avoid
28168         implication that compiler is modifying the size.
28169
28170 2001-10-26  Robert Dewar <dewar@gnat.com>
28171
28172         * prj-util.adb: Minor reformatting. Fix bad header format.
28173
28174 2001-10-26  Robert Dewar <dewar@gnat.com>
28175
28176         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
28177
28178         * sinfo.ads: Clarify use of Associated_Node (documentation only).
28179
28180         * sem_ch12.adb: Change Node4 to Associated_Node. Change
28181         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
28182         much more narrowly in places where needed. These are cleanups.
28183
28184 2001-10-26  Joel Brobecker <brobecke@gnat.com>
28185
28186         * 5zosinte.ads (null_pthread): new constant.
28187
28188         * 5ztaprop.adb:
28189         (Initialize_TCB): Initialize thread ID to null, to be able to verify
28190          later that this field has been set.
28191         (Finalize_TCB): ditto.
28192         (Suspend_Task): Verify that the thread ID is not null before using it.
28193         (Resume_Task): ditto.
28194
28195         * s-tasdeb.adb:
28196         (Resume_All_Tasks): Lock the tasks list before using it.
28197         (Suspend_All_Tasks): ditto.
28198
28199 2001-10-26  Richard Kenner <kenner@gnat.com>
28200
28201         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
28202         Make constant variant of designated type for Is_Access_Constant.
28203         Call update_pointer_to with main variant.
28204
28205         * trans.c (process_freeze_entity, process_type):
28206         Call update_pointer_to on main variant.
28207
28208         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
28209         If main variant, update all other variants.
28210
28211         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
28212         TREE_STATIC.
28213
28214 2001-10-26  Robert Dewar <dewar@gnat.com>
28215
28216         * prj-util.adb: Minor reformatting
28217
28218 2001-10-26  Robert Dewar <dewar@gnat.com>
28219
28220         * prj-util.adb: Minor reformatting
28221
28222 2001-10-26  Robert Dewar <dewar@gnat.com>
28223
28224         * prj-attr.adb: Minor reformatting throughout
28225
28226 2001-10-26  Robert Dewar <dewar@gnat.com>
28227
28228         * prj-attr.ads: Minor reformatting
28229         Add ??? comment (this whole spec has almost no comments)
28230
28231 2001-10-26  Vincent Celier <celier@gnat.com>
28232
28233         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
28234         ("//") that precede the drive letter on Interix.
28235
28236 2001-10-26  Geert Bosch <bosch@gnat.com>
28237
28238         * gnat_rm.texi: Add GNAT Reference Manual.
28239
28240 2001-10-25  Robert Dewar <dewar@gnat.com>
28241
28242         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
28243         is Error. Similar change for other renaming cases.
28244
28245 2001-10-25  Robert Dewar <dewar@gnat.com>
28246
28247         * s-atacco.ads: Add pragma Inline_Always for functions.
28248         Fix header format. Add copyright 2001
28249
28250 2001-10-25  Ed Schonberg <schonber@gnat.com>
28251
28252         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
28253         return Error rather than Empty so that analysis can proceed.
28254
28255 2001-10-25  Ed Schonberg <schonber@gnat.com>
28256
28257         * sem_util.adb (Enter_Name): better handling of cascaded error
28258         messages when a unit appears in its own context.
28259
28260 2001-10-25  Ed Schonberg <schonber@gnat.com>
28261
28262         * sem_util.adb (Defining_Entity): in case of error, attach created
28263         entity to specification, so that semantic analysis can proceed.
28264
28265 2001-10-25  Robert Dewar <dewar@gnat.com>
28266
28267         * sem_util.adb
28268         (Defining_Entity): Deal with Error.
28269         (Process_End_Label): Deal with bad end label for.
28270
28271 2001-10-25  Ed Schonberg <schonber@gnat.com>
28272
28273         * sem_elab.adb (Check_A_Call): refine message when call is in an
28274         instance but callee is not declared in the generic unit.
28275
28276 2001-10-25  Ed Schonberg <schonber@gnat.com>
28277
28278         * sem_elab.adb (Check_A_Call): check for renaming before finding the
28279         enclosing unit, which may already be different from the calling unit.
28280
28281 2001-10-25  Geert Bosch <bosch@gnat.com>
28282
28283         * 4gintnam.ads: fix header format.
28284
28285 2001-10-25  Ed Schonberg <schonber@gnat.com>
28286
28287         * sem_res.adb (Resolve_Call): if the call is actually an indexing
28288         operation on the result of a parameterless call, perform elaboration
28289         check after the node has been properly rewritten.
28290
28291         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
28292         inlined within the generic tree, the defining identifier is not a
28293         compilation_unit.
28294
28295 2001-10-25  Ed Schonberg <schonber@gnat.com>
28296
28297         * sem_res.adb (Resolve): special-case resolution of Null in an
28298          instance or an inlined body to avoid view conflicts.
28299
28300         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
28301          compatibility by retrieving the access type of the generic copy.
28302
28303 2001-10-25  Robert Dewar <dewar@gnat.com>
28304
28305         * sem_ch3.adb:
28306         (Analyze_Number_Declaration): Handle error expression.
28307         (Signed_Integer_Type_Declaration): Handle error bound.
28308         (Analyze_Subtype_Indication): Handle error range.
28309
28310         * sem_util.adb (Get_Index_Bounds): Check for Error.
28311
28312 2001-10-25  Robert Dewar <dewar@gnat.com>
28313
28314         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
28315         in no run time mode.
28316
28317 2001-10-25  Pascal Obry <obry@gnat.com>
28318
28319         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
28320         mode case for ALLOC case.
28321
28322         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
28323         all platforms. Improvement of last change.
28324
28325 2001-10-25  Robert Dewar <dewar@gnat.com>
28326
28327         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
28328
28329 2001-10-25  Geert Bosch  <bosch@gnat.com>
28330
28331         * osint.adb (Is_Relative): Remove duplicate.
28332
28333 2001-10-25  Pascal Obry <obry@gnat.com>
28334
28335         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
28336         pathnames in UNIX and DOS style with drive letter.
28337         (Is_Relative): new routine.
28338
28339         * osint.adb: Minor reformatting
28340
28341         * osint.adb (Is_Relative): implementation using
28342         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
28343
28344 2001-10-25  Pascal Obry <obry@gnat.com>
28345
28346         * g-dirope.adb (Basename): correctly compute offset between the
28347         original Path and the translated one.
28348
28349         * g-dirope.adb: (Base_Name): add some comments.
28350
28351 2001-10-25  Robert Dewar <dewar@gnat.com>
28352
28353         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
28354         in HIE mode, avoids compilation abandoned message
28355
28356         * exp_imgv.adb: Correct typo in previous change
28357
28358         * exp_imgv.adb: Correct typo in previous change (not my day!)
28359
28360 2001-10-25  Robert Dewar <dewar@gnat.com>
28361
28362         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
28363
28364 2001-10-25  Pascal Obry <obry@gnat.com>
28365
28366         * g-awk.ads: Move all pragma inlines next to the routine
28367          declarations. This is more uniform with other GNAT spec.
28368
28369 2001-10-22  Geert Bosch  <bosch@gnat.com>
28370
28371         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
28372
28373 2001-10-19  Geert Bosch  <bosch@gnat.com>
28374
28375         * Makefile.in (tools, gnattools): Remove gnatmem.
28376
28377 2001-10-17  Richard Henderson  <rth@redhat.com>
28378
28379         * Makefile.in (misc.o): Depend on langhooks.h.
28380         * misc.c: Include it.
28381         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
28382         (LANG_HOOKS_DECODE_OPTION): New.
28383         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
28384
28385 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
28386
28387         * trans.c (tree_transform): Adjust to recent change in
28388         expand_asm_operands to implement named asm operands.
28389
28390 2001-10-11  Ed Schonberg  <schonber@gnat.com>
28391
28392         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
28393         renaming of discriminant for mutable record type.
28394
28395 2001-10-11  Robert Dewar  <dewar@gnat.com>
28396
28397         * validsw.adb: Properly save -gnatVn status.
28398
28399 2001-10-11  Robert Dewar <dewar@gnat.com>
28400
28401         * usage.adb: Add lines for V switch.
28402
28403         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
28404         (/VALIDITY_CHECKING).
28405
28406 2001-10-11  Ed Schonberg <schonber@gnat.com>
28407
28408         * sem_type.adb (Add_One_Interp): an operator for a type declared in
28409         an extension of System is known to be visible.
28410
28411 2001-10-11  Ed Schonberg <schonber@gnat.com>
28412
28413         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
28414         properly. Fixes regression on ACATS C34005G.
28415
28416 2001-10-11  Robert Dewar <dewar@gnat.com>
28417
28418         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
28419         loop in generic instance, since this is likely not very useful.
28420
28421 2001-10-11  Robert Dewar <dewar@gnat.com>
28422
28423         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
28424         the error message for high integrity mode.
28425
28426         * rtsfind.adb (RTE): Give message if we try to find an entity that
28427         is not available in high integrity mode.
28428
28429         * rtsfind.ads:
28430         (OK_To_Use_In_HIE_Mode): New array.
28431         (RTE): May return Empty in high integrity mode.
28432
28433         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
28434         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
28435
28436         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
28437         unit if not inlined always and in no runtime mode. Fixes problem
28438         caused by new Rtsfind changes.
28439
28440         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
28441         body is deleted.
28442
28443         * rtsfind.adb (RTE): Make sure we do not try to load unit after
28444         giving message for entity not available in high integrity mode.
28445
28446 2001-10-11  Pascal Obry <obry@gnat.com>
28447
28448         * impunit.adb: Add GNAT.CRC32.
28449
28450 2001-10-11  Ed Schonberg <schonber@gnat.com>
28451
28452         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
28453         properly the case where one universal operand in a non-static
28454         exponentiation of a real literal.
28455
28456 2001-10-11  Ed Schonberg <schonber@gnat.com>
28457
28458         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
28459         clause, return the gobal finalization list, for lack of anthing else.
28460
28461 2001-10-11  Ed Schonberg <schonber@gnat.com>
28462
28463         * exp_ch7.adb (Make_Transient_Block): if statement is within
28464         exception handler, always use new transient scope to place Clean
28465         procedure.
28466
28467 2001-10-11  Pascal Obry <obry@gnat.com>
28468
28469         * Makefile.in:
28470         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
28471         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
28472         (GNATLS_RTL_OBJS): add g-crc32.o
28473         (GNATMAKE_RTL_OBJS): add g-crc32.o
28474
28475         * ali-util.adb:
28476         (CRC_Match): new function.
28477         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
28478         instead of the previous simple checksum algorithm.
28479         (Time_Stamp_Mismatch): use CRC_Match for comparison.
28480         (Set_Source_Table): idem.
28481
28482         * ali-util.ads:
28483         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
28484         instead of simple checksum.
28485         (CRC_Match): new function.
28486         (CRC_Error): new constant.
28487
28488         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
28489         a CRC now and not a simple checksum. A CRC uses lower-case hex
28490         letters, fixes ambiguity in parsing.
28491
28492         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
28493         is what this variable will store.
28494
28495         * bcheck.adb: Change reference to chechsum in comments by CRC.
28496         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
28497         rename All_Checksum_Match to All_CRC_Match. Change due to API
28498         renaming since now GNAT does not use a simple checksum but a
28499         CRC using GNAT.CRC32.
28500
28501         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
28502         now and not anymore a simple checksum.
28503
28504         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
28505         places.
28506
28507         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
28508
28509         * scans.adb:
28510         (Restore_Scan_State): rename Checksum to CRC.
28511         (Save_Scan_State): idem.
28512
28513         * scans.ads:
28514         With GNAT.CRC32.
28515         (Checksum): rename to CRC.
28516         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
28517
28518         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
28519         GNAT.CRC32).  Update copyright notice.
28520
28521         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
28522         GNAT.CRC32).  Update copyright notice.
28523
28524         * scn.adb:
28525         (Accumulate_Checksum): removed.
28526         (Update): new procedure. Add a wide-character into the CRC.
28527
28528         * sinput-l.adb:
28529         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
28530         (Load_File): fix initialization of S (change Source_Checksum to
28531         Source_CRC)
28532
28533         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
28534         Source_CRC in S initialization.
28535
28536         * sinput.adb (Source_Checksum): renamed to Source_CRC.
28537
28538         * sinput.ads (Source_Checksum): renamed to Source_CRC.
28539         Update comments for the CRC.
28540
28541         * types.adb (Hex): Use lowercase for the letter part.
28542
28543         * types.ads (Get_Hex_String): Returns the hexadecimal representation
28544         for a word. This is currently used only for CRC. In previous version,
28545         the checksum was using a representation with all letter being
28546         upper-case. With the new implementation (using CRC) we do not remove
28547         the 32th bit of the CRC, so we can have an upper-case starting letter
28548         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
28549         It is ambigous since the CRC was optional and could be followed by
28550         options like EB, EE. So now this routines uses lower-case letter for
28551         the hexadecimal representation. Strange enough only lower case letters
28552         where checked in Scan_ALI (even if this was not a possible case).
28553
28554         * gnatvsn.ads (Library_Version): changed to 3.15a.
28555
28556         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
28557         for the compiler.
28558
28559         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
28560         for the compiler.
28561
28562         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
28563         Add 2001 to copyright notice
28564         (Accumulate_Checksum): Modify to use System.CRC32.
28565
28566         * ali-util.ads: Redo changes of previous revision to continue to use
28567         the word Checksum. Add 2001 to copyright notice.
28568
28569         * ali.adb: Undo some of previous changes, not needed.
28570         Keep the change for lower case letters in the checksum.
28571
28572         * ali.ads: Undo previous change not needed.
28573
28574         * bcheck.adb: Undo most of previous change, not needed.
28575         But do use Checksums_Match for checksum comparison.
28576
28577         * gnatls.adb: Undo most of previous change, not needed.
28578         But do use Checksums_Match for comparing checksums.
28579
28580         * lib-load.adb: Undo previous change, not needed.
28581
28582         * lib-writ.adb: Undo previous change, not needed.
28583
28584         * lib-writ.ads: Document that checksums use lower case,
28585         not upper case letters.
28586
28587         * scans.adb: Undo previous change, not needed
28588
28589         * scans.ads: Undo previous change, not needed.
28590
28591         * scn-nlit.adb: Undo previous changes, not needed.
28592
28593         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
28594
28595         * scn.adb:
28596         (Accumulate_Checksum): Use System.CRC32.
28597         (Initialize_Checksum): New procedure.
28598         Remove other changes of previous revision.
28599
28600         * sinput-p.adb: Undo previous change, not needed.
28601
28602         * sinput.adb: Undo previous change, not needed.
28603
28604         * sinput-l.adb: Undo previous change, not needed.
28605
28606         * sinput.ads: Undo previous change, not needed.  Keep only comment
28607         on new checksum algorithm
28608
28609         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
28610         Also remove a-tags and a-stream from GNAT sources.
28611
28612         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
28613
28614         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
28615
28616 2001-10-11  Geert Bosch  <bosch@gnat.com>
28617
28618         * einfo.h: Regenerate.
28619
28620         * nmake.ads: Regenerate.
28621
28622         * nmake.adb: Regenerate.
28623
28624         * sinfo.h: Regenerate.
28625
28626         * treeprs.adb: Regenerate.
28627
28628 2001-10-10  Geert Bosch  <bosch@gnat.com>
28629
28630         * gnat-style.texi: New file describing coding guidelines for Ada.
28631
28632 2001-10-10  Ed Schonberg <schonber@gnat.com>
28633
28634         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
28635         is Flag174.
28636
28637 2001-10-10  Geert Bosch  <bosch@gnat.com>
28638
28639         * snames.ads: Add new names for project facility.
28640
28641         * snames.adb: Update to reflect snames.ads changes.
28642
28643         * snames.h: Update to reflect snames.ads changes.
28644
28645 2001-10-10  Vincent Celier <celier@gnat.com>
28646
28647         * make.adb:
28648         (Add_Switches): reflect the changes for the switches attributes
28649         Default_Switches indexed by the programming language,
28650         Switches indexed by the file name.
28651         (Collect_Arguments_And_Compile): Idem.
28652         Reflect the attribute name changes.
28653
28654         * prj-attr.adb:
28655         (Initialisation_Data): Change the names of some packages and
28656         attributes.
28657         (Initialize): process case insensitive associative arrays.
28658
28659         * prj-attr.ads:
28660         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
28661
28662         * prj-dect.adb:
28663         (Parse_Attribute_Declaration): For case insensitive associative
28664          arrays, set the index string to lower case.
28665
28666         * prj-env.adb:
28667         Reflect the changes of the project attributes.
28668
28669         * prj-nmsc.adb:
28670         Replace Check_Naming_Scheme by Ada_Check and
28671         Language_Independent_Check.
28672
28673         * prj-nmsc.ads:
28674         Replaced Check_Naming_Scheme by 2 procedures:
28675         Ada_Check and Language_Independent_Check.
28676
28677         * prj-proc.adb:
28678         (Process_Declarative_Items): For case-insensitive associative
28679         arrays, set the index string to lower case.
28680         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
28681         Prj.Nmsc.Check_Naming_Scheme.
28682
28683         * prj-tree.adb:
28684         (Case_Insensitive): New function
28685         (Set_Case_Insensitive): New procedure
28686
28687         * prj-tree.ads:
28688         (Case_Insensitive): New function
28689         (Set_Case_Insensitive): New procedure
28690         (Project_Node_Record): New flag Case_Insensitive.
28691
28692         * prj-util.adb:
28693         (Value_Of): new function to get the string value of a single
28694         string variable or attribute.
28695
28696         * prj-util.ads:
28697         (Value_Of): new function to get the string value of a single
28698         string variable or attribute.
28699
28700         * prj.adb:
28701         (Ada_Default_Spec_Suffix): New function
28702         (Ada_Default_Impl_Suffix): New function
28703         Change definitions of several constants to reflect
28704         new components of record types.
28705
28706         * prj.ads:
28707         (Naming_Data): Change several components to reflect new
28708         elements of naming schemes.
28709         (Project_Data): New flags Sources_Present and
28710         Language_Independent_Checked.
28711         (Ada_Default_Spec_Suffix): New function.
28712         (Ada_Default_Impl_Suffix): New function.
28713
28714         * snames.ads:
28715         Modification of predefined names for project manager: added
28716         Implementation, Specification_Exceptions, Implementation_Exceptions,
28717         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
28718         Default_Switches, _Languages, Builder, Cross_Reference,
28719         Finder. Removed Body_Part, Specification_Append, Body_Append,
28720         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
28721         Gnatlink.
28722
28723         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
28724         Add comments.
28725
28726         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
28727         not that it is Nil_Variable_Value.
28728
28729         * prj.ads: Add ??? for uncommented declarations
28730
28731 2001-10-10  Ed Schonberg <schonber@gnat.com>
28732
28733         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
28734         constant, do not indicate possible modification, so that gigi can
28735         treat it as a bona fide constant.
28736
28737 2001-10-10  Robert Dewar <dewar@gnat.com>
28738
28739         * sem_prag.adb: Add processing for pragma External.
28740
28741         * snames.ads: Add entry for pragma External.
28742
28743         * par-prag.adb: Add pragma External.
28744
28745         * snames.adb: Updated to match snames.ads.
28746
28747 2001-10-10  Ed Schonberg <schonber@gnat.com>
28748
28749         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
28750         a dynamic task if the allocator appears in an indexed assignment
28751         or selected component assignment.
28752
28753         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
28754         For a dynamic task in an assignment statement, use target of
28755         assignment to generate meaningful name.
28756
28757 2001-10-10  Ed Schonberg <schonber@gnat.com>
28758
28759         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
28760         a generic package.
28761
28762         * einfo.ads: Body_Entity is also defined for generic package.
28763         Documentation change only
28764
28765         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
28766         others_choice for a discriminated component initialization,
28767         convert discriminant references into the corresponding discriminals.
28768
28769         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
28770         only if original type is private and expression has to be wrapped
28771         in a conversion.
28772
28773         * checks.adb:
28774         (Apply_Constraint_Check): Do not perform length check
28775         if expression is an aggregate with only an others_choice.
28776         (Length_N_Cond): two references to the same in_parameter
28777         (typically the discriminal in an init_proc) denote the same value.
28778         Two useful optimization uncovered by bugfixes above.
28779
28780 2001-10-10  Robert Dewar <dewar@gnat.com>
28781
28782         * xeinfo.adb: Change int to char in translation of enumeration types.
28783         This fixes a problem in the C representation of component alignment.
28784         Add 2001 to copyright notice
28785
28786 2001-10-10  Richard Kenner <kenner@gnat.com>
28787
28788         * decl.c: (validate_size): Do check size of object of integral type
28789         if it is a packed array type.
28790
28791 2001-10-10  Richard Kenner <kenner@gnat.com>
28792
28793         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
28794         VAR_DECL for constant if not Is_Public but -O0.
28795
28796 2001-10-10  Richard Kenner  <kenner@gnat.com>
28797
28798         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
28799
28800 2001-10-10  Geert Bosch  <bosch@gnat.com>
28801
28802         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
28803         use '/' as switch character, allowing for absolute file names.
28804
28805 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
28806
28807         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
28808         FSF address.
28809
28810 2001-10-08  Geert Bosch  <bosch@gnat.com>
28811
28812         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
28813         Automatically build utilities when files need to be regenerated.
28814
28815 2001-10-08  Geert Bosch  <bosch@gnat.com>
28816
28817         * xsnames.adb: New utility for updating snames.ads and snames.adb
28818
28819 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
28820
28821         * Make-lang.in (ADAFLAGS): Add -W -Wall.
28822         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
28823         (gnat1): Also depend on attribs.o.
28824         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
28825         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
28826         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
28827         (ADAFLAGS): Add -W -Wall.
28828         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
28829         take out CFLAGS.
28830
28831         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
28832         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
28833         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
28834         Use $(ADAC), not $(CC), as compilation command.
28835
28836         (gnattools): Depend directly on tools to build, don't use
28837         recursive make.
28838         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
28839
28840         * einfo.h, sinfo.h: New files (autogenerated).
28841
28842 2001-10-08  Richard Henderson  <rth@redhat.com>
28843
28844         * comperr.adb (Abort_In_Progress): New.
28845         (Compiler_Abort): Use it to prevent recursion.
28846
28847 2001-10-08  Robert Dewar <dewar@gnat.com>
28848
28849         * atree.adb: Set Error_Posted in Error node, helps error recovery.
28850
28851         * par-endh.adb (Output_End_Expected): We should also not test
28852         Error_Posted on the Error node, since now it is always set.
28853
28854         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
28855         to help error recovery. Part of general work on 9407-004.
28856
28857         * par.adb: Add ??? for misuse of error
28858
28859         * sem_res.adb:
28860         (Resolve): Defend against Error, fixes 9407-003.
28861         (Resolve_Discrete_Subtype_Indication): Defend against Error.
28862
28863         * sinfo.ads (N_Error): Now has Etype field (which will be set
28864         to Any_Type to help error recovery).
28865
28866 2001-10-08  Richard Kenner (kenner@gnat.com)
28867
28868         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
28869         Consistently set MEM attributes from expression; fixes
28870         bootstrap failure on x86.
28871
28872 2001-10-08  Geert Bosch  (bosch@gnat.com)
28873
28874         * 5oosinte.adb: Add 2001 to copyright notice.
28875
28876 2001-10-08  Geert Bosch  (bosch@gnat.com)
28877
28878         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
28879
28880         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
28881
28882 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
28883
28884         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
28885
28886 2001-10-05  Geert Bosch  (bosch@gnat.com)
28887
28888         * adaint.h: Small formatting fix.
28889
28890 2001-10-04  Geert Bosch  <bosch@gnat.com>
28891
28892         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
28893         Arg is int, not FILE *, in dummy version of functions.
28894
28895         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
28896         Arg is int, not FILE *.
28897
28898 2001-10-04  Geert Bosch  <bosch@gnat.com>
28899
28900         * 3lsoccon.ads: Added file, missed with initial check ins.
28901
28902         * 4lintnam.ads: Fix header format.
28903         Change Linux to GNU/Linux.
28904
28905         * 5iosinte.adb: Change Linux to GNU/Linux.
28906
28907         * 5iosinte.ads: Change Linux to GNU/Linux.
28908
28909         * 5itaprop.adb: Change Linux to GNU/Linux.
28910
28911         * 5itaspri.ads: Change Linux to GNU/Linux.
28912         Update copyright notice.
28913
28914         * 5lintman.adb: Change Linux to GNU/Linux.
28915
28916         * 5lml-tgt.adb: Change Linux to GNU/Linux.
28917
28918         * 5losinte.ads: Change Linux to GNU/Linux.
28919
28920         * 5lsystem.ads: Change Linux to GNU/Linux.
28921
28922         * 5qosinte.adb: Change Linux to GNU/Linux.
28923
28924         * 5qosinte.ads: Change Linux to GNU/Linux.
28925
28926         * 5qparame.ads: Change Linux to GNU/Linux.
28927
28928         * 5qtaprop.adb: Change Linux to GNU/Linux.
28929
28930         * 5qtaspri.ads: Change Linux to GNU/Linux.
28931         Add 2001 to copyright notice.
28932
28933         * 5vintman.ads: Change Linux to GNU/Linux.
28934         Fix header format.  Add 2001 to copyright notice.
28935
28936         * g-soccon.ads: Change Linux to GNU/Linux.
28937
28938         * g-trasym.ads: Change Linux to GNU/Linux.
28939         Add 2001 to copyright notice.
28940
28941         * memtrack.adb: Change Linux to GNU/Linux.
28942
28943         * s-intman.ads: Change Linux to GNU/Linux.
28944         Add 2001 to copyright notice.  Fix header format.
28945
28946         * s-stache.adb: Change Linux to GNU/Linux.
28947
28948         * adaint.c: Change Linux to GNU/Linux.
28949
28950         * cio.c: Change Linux to GNU/Linux.
28951
28952         * cstreams.c: Change Linux to GNU/Linux.
28953
28954         * init.c: Change Linux to GNU/Linux.
28955
28956         * gmem.c: Change Linux to GNU/Linux.
28957
28958         * tracebak.c: Change Linux to GNU/Linux.
28959
28960
28961 2001-10-02  Geert Bosch  <bosch@gnat.com>
28962
28963         * misc.c (insert_default_attributes): Add dummy version.